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}]"); } }
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()); } } }