[Server] public void RequestAvatarSpawn(DC_Player player) { Debug.Log("AvatarSpawn Request from " + player.playerName); if (player.avatarSpawnO) { return; } GameObject avatarSpawnO = Instantiate(avatarSpawnPrefab); DC_Avatar_Spawn avatarSpawn = avatarSpawnO.GetComponent <DC_Avatar_Spawn>(); avatarSpawn.playerO = player.gameObject; if (NetworkServer.SpawnWithClientAuthority(avatarSpawnO, player.gameObject)) { player.avatarSpawn = avatarSpawn; // Only on Server player.avatarSpawnO = avatarSpawnO; player.RpcSetAvatarSpawn(avatarSpawnO); } else { NetworkServer.Destroy(avatarSpawnO); } }
[ClientRpc] public void RpcSetAvatarSpawn(GameObject aS) { var avaS = aS.GetComponent <DC_Avatar_Spawn>(); avatarSpawn = avaS; if (hasAuthority) { avaS.SetPlayer(gameObject); homeRoom.SetAvatarSpawn(avaS); } }
public void SetAvatarSpawn(DC_Avatar_Spawn avaS = null) { avatarSpawn = avaS; avatarSpawnGO = avaS ? avaS.gameObject : null; if (avaS) { GainAvatarSpawn(); } else { LoseAvatarSpawn(); } }
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 override void OnGainAvatarSpawn(DC_Avatar_Spawn avatarS) { avatarSpawn = avatarS; handle.toolEnabled = true; }
public virtual void OnGainAvatarSpawn(DC_Avatar_Spawn avatarS) { }