[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); } }
// 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; }
[ClientRpc] public void RpcClearAvatar() { GameObject.Destroy(avatarO); homeRoom.SetAvatar(null); avatar = null; avatarO = null; }
[ClientRpc] public void RpcSetAvatar(GameObject a) { var ava = a.GetComponent <DC_Avatar>(); avatar = ava; if (hasAuthority) { ava.SetLocalPlayer(localPlayer); homeRoom.SetAvatar(ava); ava.UpdateBody(); } }
public void SetAvatar(DC_Avatar ava = null) { avatar = ava; avatarGO = ava ? ava.gameObject : null; if (ava) { GainAvatar(); } else { LoseAvatar(); } }
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(); }
public void PositionAvatar(DC_Avatar avatar) { avatar.RpcSetPosition(transform.position); }
public void PositionAvatar(GameObject avatarO) { DC_Avatar avatar = avatarO.GetComponent <DC_Avatar>(); PositionAvatar(avatar); }
public override void OnGainAvatar(DC_Avatar avatar) { this.avatar = avatar; screenCover.SetActive(false); }
public virtual void OnGainAvatar(DC_Avatar avatar) { }