Ejemplo n.º 1
0
    [Server] public void RequestAvatar(DC_Player player)
    {
        Debug.Log("Avatar Request from " + player.playerName);

        if (!player.avatarSpawn || player.avatar)
        {
            return;
        }

        if (!player.avatarSpawn.lockedIn)
        {
            return;
        }

        GameObject avatarO = Instantiate(avatarPrefab);
        DC_Avatar  avatar  = avatarO.GetComponent <DC_Avatar>();

        avatar.playerO = player.gameObject;

        if (NetworkServer.SpawnWithClientAuthority(avatarO, player.gameObject))
        {
            player.avatar = avatar; // Only on Server

            player.avatarO = avatarO;
            player.RpcSetAvatar(avatarO);

            player.avatarSpawn.PositionAvatar(avatar);
        }
        else
        {
            NetworkServer.Destroy(avatarO);
        }
    }
Ejemplo n.º 2
0
    // Server-Side Commands

    // Client-Side Commands

    [ClientRpc] public void RpcSetAvatar(GameObject aO)
    {
        DC_Avatar avatar = aO.GetComponent <DC_Avatar>();
        DC_Player player = avatar.playerO.GetComponent <DC_Player>();

        this.avatar = avatar;
        this.player = player;
    }
Ejemplo n.º 3
0
    [ClientRpc] public void RpcClearAvatar()
    {
        GameObject.Destroy(avatarO);

        homeRoom.SetAvatar(null);
        avatar  = null;
        avatarO = null;
    }
Ejemplo n.º 4
0
    [ClientRpc] public void RpcSetAvatar(GameObject a)
    {
        var ava = a.GetComponent <DC_Avatar>();

        avatar = ava;

        if (hasAuthority)
        {
            ava.SetLocalPlayer(localPlayer);
            homeRoom.SetAvatar(ava);
            ava.UpdateBody();
        }
    }
Ejemplo n.º 5
0
    public void SetAvatar(DC_Avatar ava = null)
    {
        avatar   = ava;
        avatarGO = ava ? ava.gameObject : null;

        if (ava)
        {
            GainAvatar();
        }
        else
        {
            LoseAvatar();
        }
    }
Ejemplo n.º 6
0
    void Update()
    {
        if (serverGameO && !serverGame)
        {
            serverGame = serverGameO.GetComponent <DC_Game>();
        }

        if (avatarO && !avatar)
        {
            avatar = avatarO.GetComponent <DC_Avatar>();
        }

        if (avatarSpawnO && !avatarSpawn)
        {
            avatarSpawn = avatarSpawnO.GetComponent <DC_Avatar_Spawn>();
        }

        ServerUpdate();
        ClientUpdate();
    }
Ejemplo n.º 7
0
 public void PositionAvatar(DC_Avatar avatar)
 {
     avatar.RpcSetPosition(transform.position);
 }
Ejemplo n.º 8
0
    public void PositionAvatar(GameObject avatarO)
    {
        DC_Avatar avatar = avatarO.GetComponent <DC_Avatar>();

        PositionAvatar(avatar);
    }
Ejemplo n.º 9
0
 public override void OnGainAvatar(DC_Avatar avatar)
 {
     this.avatar = avatar;
     screenCover.SetActive(false);
 }
Ejemplo n.º 10
0
 public virtual void OnGainAvatar(DC_Avatar avatar)
 {
 }