// --------------------------------------------------------------------------------------------------------------------
//
// Part of: Photon Unity Utilities,
//
//
// Custom inspector for PlayerNumbering
//
// developer@exitgames.com
// --------------------------------------------------------------------------------------------------------------------
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using Photon.Pun;
using Photon.Realtime;
namespace Photon.Pun.UtilityScripts
{
[CustomEditor(typeof(PlayerNumbering))]
public class PlayerNumberingInspector : Editor {
int localPlayerIndex;
void OnEnable () {
PlayerNumbering.OnPlayerNumberingChanged += RefreshData;
}
void OnDisable () {
PlayerNumbering.OnPlayerNumberingChanged -= RefreshData;
}
public override void OnInspectorGUI()
{
DrawDefaultInspector();
PlayerNumbering.OnPlayerNumberingChanged += RefreshData;
if (PhotonNetwork.InRoom)
{
EditorGUILayout.LabelField("Player Index", "Player ID");
if (PlayerNumbering.SortedPlayers != null)
{
foreach(Player punPlayer in PlayerNumbering.SortedPlayers)
{
GUI.enabled = punPlayer.ActorNumber > 0;
EditorGUILayout.LabelField("Player " +punPlayer.GetPlayerNumber() + (punPlayer.IsLocal?" - You -":""), punPlayer.ActorNumber == 0?"n/a":punPlayer.ToStringFull());
GUI.enabled = true;
}
}
}else{
GUILayout.Label("PlayerNumbering only works when localPlayer is inside a room");
}
}
///
/// force repaint fo the inspector, else we would not see the new data in the inspector.
/// This is better then doing it in OnInspectorGUI too many times per frame for no need
///
void RefreshData()
{
Repaint();
}
}
}