Skmaestro Дата: Пятница, 22 Мая 2015, 10:23 | Сообщение # 1
участник
Сейчас нет на сайте
Ребята запутался пожалуйста помогите есть 10 одинаковых игроков, как отослать уникальное значение всем? Код
void Update () { if(Input.GetKeyUp(KeyCode.F10)) { photonView.RPC("SetMyUI", PhotonTargets.Others, MyName, MyString); } } [RPC] public void SetMyUI(string who, string text) { TextUI.GetComponent<Text> ().text = "Player '"+who+"' set you text to "+text; } }
Работает не корректно, оно отсылает всем значения от своего имени... я на хосте нажал ф10 у игрока игрок№1(у него MyString = 123) видит 123, игрок№2(у него MyString = 12345) видит 1234 и т.д. в чем дело то? пробовал даже при ф10 ставить if photonview ismine...Добавлено (22 мая 2015, 10:21) ---------------------------------------------
Код
void Update () { if(Input.GetKeyUp(KeyCode.Mouse0) && photonView.isMine) photonView.RPC("Shoot", PhotonTargets.MasterClient, ShootPoint.transform.position, ShootPoint.transform.rotation); } [RPC] public void Shoot(Vector3 pos, Quaternion rot) { GameObject go = PhotonNetwork.Instantiate ("Clip", pos, rot, 0); photonView.RPC("Fire", PhotonTargets.All, go.rigidbody); } [RPC] public void Fire(Rigidbody go) { go.velocity = go.transform.TransformDirection(Vector3.forward * 400); }
в чем ошибка то? игрок нажимает кнопку передает серверу запрос создай пулю, сервер всем отсылает толкните ее, где ошибка то? пуля не летит ни у кого...Добавлено (22 мая 2015, 10:23) --------------------------------------------- кстатте скрипт жалуется когда стреляю, блин неужели и тут нельзя передавать обьекты,трансформы и т.д.?
Код
Exception: cannot serialize(): UnityEngine.Rigidbody ExitGames.Client.Photon.Protocol.Serialize (System.IO.MemoryStream dout, System.Object serObject, Boolean setType) ExitGames.Client.Photon.Protocol.SerializeObjectArray (System.IO.MemoryStream dout, System.Object[] objects, Boolean setType) ExitGames.Client.Photon.Protocol.Serialize (System.IO.MemoryStream dout, System.Object serObject, Boolean setType) ExitGames.Client.Photon.Protocol.SerializeHashTable (System.IO.MemoryStream dout, ExitGames.Client.Photon.Hashtable serObject, Boolean setType) ExitGames.Client.Photon.Protocol.Serialize (System.IO.MemoryStream dout, System.Object serObject, Boolean setType) ExitGames.Client.Photon.Protocol.SerializeParameterTable (System.IO.MemoryStream memStream, System.Collections.Generic.Dictionary`2 parameters) ExitGames.Client.Photon.Protocol.SerializeOperationRequest (System.IO.MemoryStream memStream, Byte operationCode, System.Collections.Generic.Dictionary`2 parameters, Boolean setType) ExitGames.Client.Photon.EnetPeer.SerializeOperationToMessage (Byte opc, System.Collections.Generic.Dictionary`2 parameters, EgMessageType messageType, Boolean encrypt) ExitGames.Client.Photon.EnetPeer.EnqueueOperation (System.Collections.Generic.Dictionary`2 parameters, Byte opCode, Boolean sendReliable, Byte channelId, Boolean encrypt, EgMessageType messageType) ExitGames.Client.Photon.PeerBase.EnqueueOperation (System.Collections.Generic.Dictionary`2 parameters, Byte opCode, Boolean sendReliable, Byte channelId, Boolean encrypted) ExitGames.Client.Photon.PhotonPeer.OpCustom (Byte customOpCode, System.Collections.Generic.Dictionary`2 customOpParameters, Boolean sendReliable, Byte channelId, Boolean encrypt) ExitGames.Client.Photon.LoadbalancingPeer.OpRaiseEvent (Byte eventCode, System.Object customEventContent, Boolean sendReliable, .RaiseEventOptions raiseEventOptions) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/LoadbalancingPeer.cs:500) NetworkingPeer.OpRaiseEvent (Byte eventCode, System.Object customEventContent, Boolean sendReliable, .RaiseEventOptions raiseEventOptions) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:1004) NetworkingPeer.RPC (.PhotonView view, System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:2945) PhotonNetwork.RPC (.PhotonView view, System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonNetwork.cs:2494) PhotonView.RpcSecure (System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:586) PhotonView.RPC (System.String methodName, PhotonTargets target, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:554) Test.Shoot (Vector3 pos, Quaternion rot) (at Assets/Scripts/Test.cs:24) 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) NetworkingPeer.ExecuteRPC (ExitGames.Client.Photon.Hashtable rpcData, .PhotonPlayer sender) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:2120) NetworkingPeer.RPC (.PhotonView view, System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:2972) PhotonNetwork.RPC (.PhotonView view, System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonNetwork.cs:2494) PhotonView.RpcSecure (System.String methodName, PhotonTargets target, Boolean encrypt, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:586) PhotonView.RPC (System.String methodName, PhotonTargets target, System.Object[] parameters) (at Assets/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:554) Test.Update () (at Assets/Scripts/Test.cs:17)
Помог поставь + Проект DeadWorldZ пока заморожен иными словами разрабатывается скрытно Skype: Skmaestro867
beril Дата: Воскресенье, 24 Мая 2015, 23:27 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата Skmaestro (
)
кстатте скрипт жалуется когда стреляю, блин неужели и тут нельзя передавать обьекты,трансформы и т.д.?
Их нельзя сериализовать. Может стоит передавать координаты по отдельности(x,y,z)?
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
Левша Дата: Понедельник, 25 Мая 2015, 11:40 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
По сети можно передавать только значения, обьекты не передаются.
X.cor.R (Prologue)
Irondust Дата: Понедельник, 25 Мая 2015, 12:19 | Сообщение # 4
участник
Сейчас нет на сайте
у сетевых объектов должен быть компонент PhotonView. У него есть viewId, который одинаковый на всех клиентах. Просто передаешь viewId и ищешь по нему что тебе нужно через PhotonView.Find(viewId).gameObject