public static GameObject SpawnObject(EN_PREFABS prefab, Vector3 pos, Vector3 rot) { GameObject go = Instantiate(EN_NetworkPrefabs.Prefab(prefab), pos, Quaternion.Euler(rot)); EN_SyncTransform trs = go.GetComponent <EN_SyncTransform>(); trs.is_mine = true; trs.syncFrameRate = 10; return(go); }
private void Update() { if (Input.GetKeyDown(KeyCode.A)) { EN_Protocol.SendTCP(stream, new EN_PacketMessage("Hello!")); } if (Input.GetKeyDown(KeyCode.F1)) { GameObject go = Instantiate(EN_NetworkPrefabs.Prefab(EN_PREFABS.Cube), Vector3.zero, Quaternion.identity); go.AddComponent <EN_SyncTransform>().syncFrameRate = 10; go.GetComponent <EN_SyncTransformClient>().enabled = false; Vector3 pos = go.transform.position; Vector3 rot = go.transform.rotation.eulerAngles; EN_PacketSpawnObject packet; packet.packet_type = EN_TCP_PACKET_TYPE.SPAWN_OBJECT; packet.packet_prefab = EN_PREFABS.Cube; packet.packet_network_id = go.GetInstanceID(); packet.tX = pos.x; packet.tY = pos.y; packet.tZ = pos.z; packet.rX = rot.x; packet.rY = rot.y; packet.rZ = rot.z; EN_Protocol.SendTCP(stream, packet); } if (Input.GetKeyDown(KeyCode.F2)) { //remove Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { int id = hit.transform.gameObject.GetInstanceID(); Destroy(hit.transform.gameObject); EN_PacketRemoveObject packet; packet.packet_type = EN_TCP_PACKET_TYPE.REMOVE_OBJECT; packet.packet_network_id = id; EN_Protocol.SendTCP(stream, packet); } } udp_in.text = TrafficInUDP().ToString(); tcp_in.text = TrafficInTCP().ToString(); udpBytesIn = 0; tcpBytesIn = 0; }
public static void BuildPrefabList() { if (Application.isEditor) { #if UNITY_EDITOR // Find game path asset string[] assets = AssetDatabase.FindAssets("t:EN_NetworkPrefabs"); if (assets == null || assets.Length < 1) { return; } // Find game path through asset string asset = AssetDatabase.GUIDToAssetPath(assets[0]); EN_NetworkPrefabs prefabs_editor = AssetDatabase.LoadAssetAtPath <EN_NetworkPrefabs>(asset); prefabs_editor.networkPrefabs = new Dictionary <EN_PREFABS, GameObject>(); GameObject[] prefabs = Resources.LoadAll <GameObject>("NetworkPrefabs"); for (int i = 0; i < prefabs.Length; i++) { EN_PrefabType prefab = prefabs[i].GetComponent <EN_PrefabType>(); prefabs_editor.networkPrefabs.Add(prefab.type, prefabs[i]); } AssetDatabase.Refresh(); EditorUtility.SetDirty(prefabs_editor); AssetDatabase.SaveAssets(); instance = prefabs_editor; #endif } else { EN_NetworkPrefabs prefabs_build = Resources.Load <EN_NetworkPrefabs>("NetworkDatabase/EN_NetworkPrefabs"); prefabs_build.networkPrefabs = new Dictionary <EN_PREFABS, GameObject>(); GameObject[] prefabs = Resources.LoadAll <GameObject>("NetworkPrefabs"); for (int i = 0; i < prefabs.Length; i++) { EN_PrefabType prefab = prefabs[i].GetComponent <EN_PrefabType>(); prefabs_build.networkPrefabs.Add(prefab.type, prefabs[i]); } instance = prefabs_build; } }
private void TranslateTCP(EN_TCP_PACKET_TYPE type, byte[] bytes) { if (type == EN_TCP_PACKET_TYPE.CONNECT) { // Someone connected and we want to establish who it is EN_PacketConnect packet = EN_Protocol.BytesToObject <EN_PacketConnect>(bytes); if (packet.packet_client_guid.Equals(EN_ClientSettings.CLIENT_GUID) == true) { packet.packet_client_name += " (you)"; } AddClient(packet.packet_client_guid, packet.packet_client_name); } if (type == EN_TCP_PACKET_TYPE.GAME_STATE) { EN_PacketGameState packet = EN_Protocol.BytesToObject <EN_PacketGameState>(bytes); } if (type == EN_TCP_PACKET_TYPE.SPAWN_OBJECT) { EN_PacketSpawnObject packet = EN_Protocol.BytesToObject <EN_PacketSpawnObject>(bytes); Vector3 pos = new Vector3(packet.tX, packet.tY, packet.tZ); Quaternion rot = Quaternion.Euler(packet.rX, packet.rY, packet.rZ); GameObject go = Instantiate(EN_NetworkPrefabs.Prefab(packet.packet_prefab), pos, rot); go.AddComponent <EN_NetworkObject>().network_id = packet.packet_network_id; EN_NetworkObject.Add(packet.packet_network_id, go); ConsoleMessage(string.Format("Spawned {0} with network ID {1}", go.name, packet.packet_network_id)); } if (type == EN_TCP_PACKET_TYPE.REMOVE_OBJECT) { EN_PacketRemoveObject packet = EN_Protocol.BytesToObject <EN_PacketRemoveObject>(bytes); GameObject go = EN_NetworkObject.Find(packet.packet_network_id); string n = go.name; EN_NetworkObject.Remove(packet.packet_network_id); Destroy(go); ConsoleMessage(string.Format("Removed {0} with network ID {1}", n, packet.packet_network_id)); } }
private void OnSceneLoad(Scene scene, LoadSceneMode mode) { /* * if (Application.isEditor) * { * EN_NetworkPrefabs.BuildPrefabListEditor(); * } * else * { * EN_NetworkPrefabs.BuildPrefabListStandalone(); * text_clients.text = "Standalone"; * }*/ if (Application.isEditor == false) { Console(); } EN_NetworkPrefabs.BuildPrefabList(); }