public override void SendInitData(ServerPlayer destPlayer, EntityFullPacket packet = null) { PlayerFullPacket pfp = packet as PlayerFullPacket; if (pfp == null) { pfp = (PlayerFullPacket)IntrepidSerialize.TakeFromPool(PacketType.PlayerFull); } base.SendInitData(destPlayer, pfp); }
private void OnPlayerFullPacket(PlayerFullPacket packet) { var go = GameObject.Instantiate(clientSettings.proxyPrefab, packet.position.Get(), Quaternion.Euler(packet.rotation.Get())); var playerObj = go.GetComponent <ProxyPlayer>(); if (playerObj == null) { Debug.LogWarning("Unable to find ProxyPlayer component on proxy player prefab. Adding."); playerObj = go.AddComponent <ProxyPlayer>(); } playerObj.Init(client, packet.entityId); worldEntityManager.AddWorldEntity(playerObj); }
private void OnPlayerFullPacket(PlayerFullPacket packet) { // We don't spawn the player here immediately, as we want the start screen // to ask the user to press space first. // All subsequent packets are proxy players, so create the proxy manager // to deal with them proxyManager = new ProxyManager(Client, worldEntityManager); // We don't want this to be called any more Client.RemoveListener <PlayerFullPacket>(onPlayerFullPacketListenerHandle); OnPlayerLoaded?.Invoke(); }
public void SpawnPlayer(PlayerFullPacket packet) { if (Player != null) { Debug.LogWarning("SpawnPlayer called but we already have a player"); return; } // The first player full packet we receive is for us, after that // it's for proxy players. This is the first one. var clientSettings = Resources.Load <ClientSettings>("ClientSettings"); var go = Instantiate(clientSettings.playerPrefab, packet.position.Get(), Quaternion.Euler(packet.rotation.Get())); var clientPlayer = go.GetComponent <ClientPlayer>(); if (clientPlayer == null) { clientPlayer = go.AddComponent <ClientPlayer>(); Debug.LogWarning("Didn't find ClientPlayer component on player prefab, adding.."); } clientPlayer.Init(Client, packet.entityId); worldEntityManager.AddWorldEntity(clientPlayer); Player = clientPlayer; }