public void ReadMSG(byte[] msg) { if (OnlineManager.IsHost()) { OnlineManager.SendMsg(msg); } if (!OnlineManager.IsOwner(onlineID.PlayerOwner)) { Deserialize(msg); } }
public static void OnlineDestroy(this UnityEngine.Object obj, GameObject gameObject) { var onlineId = gameObject.GetComponent <OnlineIdentifiant>(); if (onlineId != null) { var info = new DestroyObjectInfo(onlineId.ObjectId); var bytes = BitConverter.GetBytes((int)MsgProtocol.DestroyObject).Concat(info.Serialize()).ToArray(); OnlineManager.SendMsg(bytes); if (OnlineManager.IsHost()) { OnlineManager.Destroy(info); } } }
private void Update() { if (Input.GetKeyDown(KeyCode.Alpha0)) { if (!OnlineManager.IsHost() && clientPanel != null) { clientPanel.gameObject.SetActive(!clientPanel.gameObject.activeSelf); } if (OnlineManager.IsHost() && serverPanel != null) { serverPanel.gameObject.SetActive(!serverPanel.gameObject.activeSelf); } } if (Input.GetKeyDown(KeyCode.Space)) { this.OnlineInstantiate(OnlinePrefabs.GetPrefabBy("Sphere"), Vector3.zero, Quaternion.identity, OnlineManager.GetPlayerId()); } }
public static void OnlineInstantiate(this UnityEngine.Object obj, GameObject gameObject, Vector3 position, Quaternion rotation, OnlinePlayerId playerOwner) { InstantiateObjectInfo info = null; if (OnlineManager.IsHost()) { info = new InstantiateObjectInfo(gameObject, position, rotation, OnlineObjectManager.GenerateId(), playerOwner); } else { info = new InstantiateObjectInfo(gameObject, position, rotation, -1, playerOwner); } var bytes = BitConverter.GetBytes((int)MsgProtocol.InstantiateObject).Concat(info.Serialize()).ToArray(); OnlineManager.SendMsg(bytes); if (OnlineManager.IsHost()) { OnlineManager.Instantiate(info); } }