Exemple #1
0
        public override void Client_ReceiveMessage(ByteStream data, LLClient client)
        {
            try
            {
                int     conId  = data.PopInt32();
                NetUser meUser = new NetUser()
                {
                    ConnectionID = conId,
                    UserName     = client.UserName,
                    TeamNumber   = client.TeamNumber
                };
                client.NetUsers[conId] = meUser;
                client.MyConnectionId  = conId;

                data = new ByteStream();
                data.Encode
                (
                    (byte)NetMessageType.USER_INFO,
                    meUser.UserName,
                    meUser.TeamNumber
                );
                // Send USER_INFO message
                client.SendNetMessage(client.ReliableChannel, data.ToArray());
                // Spawn own player instance and flag it
                client.PlayerInstances[meUser.ConnectionID]        = NetSpawner.SpawnPlayer(Vector3.zero, Quaternion.identity);
                client.PlayerInstances[meUser.ConnectionID].IsMine = true;
                // Inject the client
                client.PlayerInstances[meUser.ConnectionID].SetClient(client);
            }
            catch (Exception e)
            {
                Debug.LogError($"@Client -> @ConnectionAck: [{e.Message}]");
            }
        }
Exemple #2
0
        private void Update()
        {
            if (IsMine == false)
            {
                return;
            }

            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = _mainCamera.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out RaycastHit hit))
                {
                    _agent.SetDestination(hit.point);
                    ByteStream data = new ByteStream();
                    data.Encode
                    (
                        (byte)NetMessageType.GAMEPLAY_SETDESTINATION,
                        hit.point
                    );
                    // Send GAMEPLAY_SETDESTINATION message
                    _client.SendNetMessage(_client.ReliableChannel, data.ToArray());
                }
            }
        }