コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: Scene05ViewModel.cs プロジェクト: brogowski/nebula
 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);
     };
 }
コード例 #3
0
        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);
        }
コード例 #4
0
    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);
        }
    }