Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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();
    }
Ejemplo n.º 4
0
    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;
    }