1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // --------------------------------------------------------------------------------------------------------------------
- // <copyright file="PlayerNumbering.cs" company="Exit Games GmbH">
- // Part of: Asteroid Demo,
- // </copyright>
- // <summary>
- // Player Overview Panel
- // </summary>
- // <author>developer@exitgames.com</author>
- // --------------------------------------------------------------------------------------------------------------------
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using ExitGames.Client.Photon;
- using Photon.Realtime;
- using Photon.Pun.UtilityScripts;
- namespace Photon.Pun.Demo.Asteroids
- {
- public class PlayerOverviewPanel : MonoBehaviourPunCallbacks
- {
- public GameObject PlayerOverviewEntryPrefab;
- private Dictionary<int, GameObject> playerListEntries;
- #region UNITY
- public void Awake()
- {
- playerListEntries = new Dictionary<int, GameObject>();
- foreach (Player p in PhotonNetwork.PlayerList)
- {
- GameObject entry = Instantiate(PlayerOverviewEntryPrefab);
- entry.transform.SetParent(gameObject.transform);
- entry.transform.localScale = Vector3.one;
- entry.GetComponent<Text>().color = AsteroidsGame.GetColor(p.GetPlayerNumber());
- entry.GetComponent<Text>().text = string.Format("{0}\nScore: {1}\nLives: {2}", p.NickName, p.GetScore(), AsteroidsGame.PLAYER_MAX_LIVES);
- playerListEntries.Add(p.ActorNumber, entry);
- }
- }
- #endregion
- #region PUN CALLBACKS
- public override void OnPlayerLeftRoom(Player otherPlayer)
- {
- GameObject go = null;
- if (this.playerListEntries.TryGetValue(otherPlayer.ActorNumber, out go))
- {
- Destroy(playerListEntries[otherPlayer.ActorNumber]);
- playerListEntries.Remove(otherPlayer.ActorNumber);
- }
- }
- public override void OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable changedProps)
- {
- GameObject entry;
- if (playerListEntries.TryGetValue(targetPlayer.ActorNumber, out entry))
- {
- entry.GetComponent<Text>().text = string.Format("{0}\nScore: {1}\nLives: {2}", targetPlayer.NickName, targetPlayer.GetScore(), targetPlayer.CustomProperties[AsteroidsGame.PLAYER_LIVES]);
- }
- }
- #endregion
- }
- }
|