public void CreateNewGameObject(SpawnPacket packet) { var prefab = _prefabs[packet.Type]; var newGameObject = (GameObject)Object.Instantiate(prefab, packet.Position, packet.Rotation); Object.Destroy(newGameObject.GetComponent <Rigidbody>()); _gameObjects.Add(packet.Id, new PhysicsObject(newGameObject, packet.Type)); }
public void ConnectAsClient() { _networking.ConnectAsClient(AddressPort); _updateAction = UpdateClient; _spawnClickAction = () => { var packet = new SpawnPacket(Guid.NewGuid(), new Vector3(0, 5), new Quaternion(), "X"); var serializedPacket = _serializer.Serialize(packet); _networking.SendOnlineMessage(serializedPacket); }; }
public void Setup() { _packet = new SpawnPacket(Guid.NewGuid(), new Vector3(), new Quaternion(), "Cat"); _mockGuidSerializer = Substitute.For <IPacketConverter <Guid> >(); _mockVectorSerializer = Substitute.For <IPacketConverter <Vector3> >(); _mockQuaternionSerializer = Substitute.For <IPacketConverter <Quaternion> >(); _serializer = new SpawnPacketSerializer( _mockGuidSerializer, _mockVectorSerializer, _mockQuaternionSerializer); }
private void OnSpawn(SocketIOEvent obj) { SpawnPacket packet = JsonUtility.FromJson <SpawnPacket>(obj.data); string id = packet.id; if (id == localID) { MenuManager.getInstance.Change(screen.InGame); } string _name = packet.name; bool isBot = packet.isBot; Vector3 position = new Vector3(packet.posX, packet.posY, packet.posZ); Quaternion rotation = new Quaternion(packet.rotX, packet.rotY, packet.rotZ, packet.rotW); int charId = packet.charId; float maxHealth = packet.maxHealth; float currentHealth = packet.currentHealth; Debug.Log("Spawning: " + (PlayerFaction)charId + " is bot: " + isBot + " at: " + position); GameObject playerPrefab = null; if (!isBot) { playerPrefab = warriorPrefab; if ((PlayerFaction)charId == PlayerFaction.Orc) { playerPrefab = orcPrefab; } } else { playerPrefab = warriorAIPrefab; if ((PlayerFaction)charId == PlayerFaction.Orc) { playerPrefab = orcAIPrefab; } } GameObject player = Instantiate(playerPrefab, position, rotation); if (!isBot) { if (id == localID) { cam.SetActive(false); LocalCamera = Instantiate(cameraPrefab, player.transform.position, player.transform.rotation); } } if (players.ContainsKey(id)) { Debug.Log("Trying to respawn player with id: " + id); return; } if (!isBot) { Player p = player.GetComponent <Player>(); if (id == localID) { localPlayer = player; } p.SetUp(id, charId, _name, maxHealth, currentHealth); players.Add(p.ID, p); } else { AI p = player.GetComponent <AI>(); if (id == localID) { localPlayer = player; } Debug.Log(p == null); p.SetUpAI(id, charId, _name, maxHealth, currentHealth); players.Add(id, p); } }