Синхронизация окружения

Синхронизация окружения

Сообщение Bezarius 07 июн 2015, 19:52

Всем привет.

Мне необходимо синхронизировать генерируемый из модулей данж по сети.
Проблема заключается в том, что у клиента все модули респавнятся в точке {0.0,0.0,0.0}

Собственно опишу как я пытаюсь решить задачу и тд.
Данж генерируется мастер-клиентом и строится из модулей. Модули инстанцируются PhotonNetwork.InstantiateSceneObject.
Во вьюхе модуля я ссылаюсь на класс модуля, который : Photon.MonoBehaviour и у которого имплементирована синхронизация координат и угла поворота.
В дебаге я убедился, что данные передаются и они корректны. Так же я убедился, что они присваиваются, однако по факту у клиента модули находятся в точке {0.0,0.0,0.0}

В процессе синхронизации у клиента вылезает пара ошибок:
InvalidCastException: Cannot cast from source type to destination type.
PhotonStream.Serialize (UnityEngine.Vector3& obj) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonClasses.cs:1178)
CaveGenerator.CaveModule.OnPhotonSerializeView (.PhotonStream stream, .PhotonMessageInfo info) (at Assets/CaveGenerator/Core/CaveModule.cs:117)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
PhotonView.ExecuteComponentOnSerialize (UnityEngine.Component component, .PhotonStream stream, .PhotonMessageInfo info) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:527)
PhotonView.DeserializeComponent (UnityEngine.Component component, .PhotonStream stream, .PhotonMessageInfo info) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:358)
PhotonView.DeserializeView (.PhotonStream stream, .PhotonMessageInfo info) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:344)
NetworkingPeer.OnSerializeRead (ExitGames.Client.Photon.Hashtable data, .PhotonPlayer sender, Int32 networkTime, Int16 correctPrefix) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:3393)
NetworkingPeer.OnEvent (ExitGames.Client.Photon.EventData photonEvent) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:1840)
ExitGames.Client.Photon.PeerBase.DeserializeMessageAndCallback (System.Byte[] inBuff)
ExitGames.Client.Photon.EnetPeer.DispatchIncomingCommands ()
ExitGames.Client.Photon.PhotonPeer.DispatchIncomingCommands ()
PhotonHandler.Update () (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonHandler.cs:83)

На данный момент идей нету, по этому обращаюсь в форумчанам за помощью :)

PS: в идеале хотелось бы обойтись одной вьюхой для корневого объекта, и синхронизировать все дочерние объекты, но у меня пока нет идей как это сделать :\
Bezarius
UNец
 
Сообщения: 2
Зарегистрирован: 03 янв 2014, 22:28

Re: Синхронизация окружения

Сообщение Bezarius 07 июн 2015, 21:49

Как оказалось, проблема с позицией связана тем, что при использовании PhotonNetwork.InstantiateSceneObject нужно было указывать сразу нужные координаты, а не пытаться двигать в нужное место.

Идеи на счет более оптимальной реализации задуманного по прежнему принимаются :)
Bezarius
UNец
 
Сообщения: 2
Зарегистрирован: 03 янв 2014, 22:28


Вернуться в Photon

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3