|
05.02.2013, 23:53
|
#1
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Маленькая проблемка в моей сети
Скажите пожалуйста, у меня такая проблемка:
Я создаю сервер на компьютере, а клиент ко мне подключаеться все нормально.
Вот только когда я спавнюсь первым на сервере у меня устанавливаеться камера и все играеться.. а потом приходит другой игрок и получаеться так что:
Я вижу своего игрока но теряеться управление, мной управляет другой игрок который присоединился, а он видит тоже себя но только я им управляю, получаеться перехрестная игра или как правльно сказать, я вижу себя а управляет мной другой игрок, и он также
Что это может быть?
|
(Offline)
|
|
05.02.2013, 23:55
|
#2
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
|
(Offline)
|
|
06.02.2013, 00:07
|
#3
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
using UnityEngine;
[RequireComponent(typeof(NetworkView))]
public class PlayerScript : MonoBehaviour
{
public float moveSpeed = 2;
public float turnSpeed = 90;
private CharacterController _controller;
private Transform _thisTransform;
public GameObject fpsPrefab;
public GameObject locomotionPrefab;
private GameObject controlledObject;
public void Start()
{
_controller = GetComponent<CharacterController>();
_thisTransform = transform;
}
public void Awake()
{
if (!networkView.isMine)
{
enabled = false;
controlledObject = Instantiate(locomotionPrefab) as GameObject;
}
else
{
controlledObject = Instantiate(fpsPrefab) as GameObject;
}
}
public void Update()
{
if (networkView.isMine)
{
_controller.Move(_thisTransform.forward * moveSpeed * Time.deltaTime * Input.GetAxis("Vertical") +
Vector3.down * 10.0f * Time.deltaTime);
Quaternion rot = Quaternion.AngleAxis(
turnSpeed * Time.deltaTime * Input.GetAxis("Horizontal"), Vector3.up);
_thisTransform.rotation *= rot;
}
}
public void OnDestroy()
{
Destroy(controlledObject);
}
public void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
{
if (stream.isWriting)
{
Vector3 pos = controlledObject.transform.position;
stream.Serialize(ref pos);
}
else
{
Vector3 posReceive = Vector3.zero;
stream.Serialize(ref posReceive);
controlledObject.transform.position = posReceive;
}
}
}
|
где именно ?
|
(Offline)
|
|
06.02.2013, 00:19
|
#4
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
Ты точно уверен что у тебя управление не правильно, а не камеры перепутаны?
|
(Offline)
|
|
06.02.2013, 00:22
|
#5
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
А знаешь ты прав)
Как это сделать?
Что надо изменить?
|
(Offline)
|
|
06.02.2013, 00:46
|
#6
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
камерой у тебя другой скрипт управляет, в нем должна быть проверка в Start
if (!networkView.isMine) { camera.enabled = false; }
|
(Offline)
|
|
06.02.2013, 01:06
|
#7
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
Я проверил и получилось такое :
У моего игрока камера стоит верно, также как и в другого который ко мне подключился
и здесь та проблема
У меня свой игрок но ним управляет только другой, а я управляю его игроком, он тоже не может своим, здесь как будто перепутаны управления.
У меня работает все да) вот только мной управляет другой)
Камеры стоят теперь нормально. Спасибо за камеру
Помогите с этим непонятным дистанционным управлением
|
(Offline)
|
|
06.02.2013, 01:09
|
#8
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
Ну единственное в чем может быть ошибка - спавн твоего игрока выполняет оппонет, а ты спавнишь его.
|
(Offline)
|
|
06.02.2013, 01:15
|
#9
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
Мой код спавна
using UnityEngine;
using System.Collections;
public class SpawnScript : MonoBehaviour
{
public Transform playerPrefab;
public void OnServerInitialized()
{
Spawnplayer();
}
public void OnConnectedToServer()
{
Spawnplayer();
}
public void Spawnplayer()
{
Transform myNewTrans = (Transform)Network.Instantiate(
playerPrefab, transform.position, transform.rotation, 0);
}
public void OnPlayerDisconnected(NetworkPlayer player)
{
Debug.Log("Clean up after player " + player);
Network.RemoveRPCs(player);
Network.DestroyPlayerObjects(player);
}
public void OnDisconnectedFromServer(NetworkDisconnection info)
{
Debug.Log("Clean up a bit after server quit");
Network.RemoveRPCs(Network.player);
Network.DestroyPlayerObjects(Network.player);
Application.LoadLevel(Application.loadedLevel);
}
}
может что то в нем?
|
(Offline)
|
|
06.02.2013, 19:41
|
#10
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
Все равно я играю другим игроком а он мной
Вот что бы проверить как пашет сеть запустите два раза игру
Посмотрите и скажите что это может быть??
|
(Offline)
|
|
06.02.2013, 20:29
|
#11
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
Скрипт Player где-то в игре используется?
|
(Offline)
|
|
06.02.2013, 20:57
|
#12
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
Нет не используеться, это был мой начальный скрипт для управления игрока, но я решил игру сделать в сети, и я с того скрипта кинул код в playerscript, я не использую скрипт player, его нужно ваще удалить
может рах тебе кинуть сам мой проэкт? посмотришь может..
|
(Offline)
|
|
06.02.2013, 21:08
|
#13
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
Проект не надо, спасибо. Код вроде правильный, я с Unity сетью практически не работал, но по идее все нормально должно быть.
|
(Offline)
|
|
06.02.2013, 21:13
|
#14
|
ПроЭктировщик
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
|
Ответ: Маленькая проблемка в моей сети
ясненько, а ты смотрел я там выше кидал свою игру(эту с проблемкой)
видел как все работает?
|
(Offline)
|
|
06.02.2013, 21:30
|
#15
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Маленькая проблемка в моей сети
Смотрел код, теперь посмотрел игру - ты управляешь своим игроком, но смотришь через камеру оппонента
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:47.
|