123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- // --------------------------------------------------------------------------------------------------------------------
- // <copyright file="TabViewManager.cs" company="Exit Games GmbH">
- // </copyright>
- // <summary>
- // Output detailed information about Pun Current states, using the old Unity UI framework.
- // </summary>
- // <author>developer@exitgames.com</author>
- // --------------------------------------------------------------------------------------------------------------------
- using UnityEngine;
- using Photon.Realtime;
- namespace Photon.Pun.UtilityScripts
- {
- /// <summary>
- /// Output detailed information about Pun Current states, using the old Unity UI framework.
- /// </summary>
- public class StatesGui : MonoBehaviour
- {
- public Rect GuiOffset = new Rect(250, 0, 300, 300);
- public bool DontDestroy = true;
- public bool ServerTimestamp;
- public bool DetailedConnection;
- public bool Server;
- public bool AppVersion;
- public bool UserId;
- public bool Room;
- public bool RoomProps;
- public bool EventsIn;
- public bool LocalPlayer;
- public bool PlayerProps;
- public bool Others;
- public bool Buttons;
- public bool ExpectedUsers;
- private Rect GuiRect = new Rect();
- private static StatesGui Instance;
- void Awake()
- {
- if (Instance != null)
- {
- DestroyImmediate(this.gameObject);
- return;
- }
- if (DontDestroy)
- {
- Instance = this;
- DontDestroyOnLoad(this.gameObject);
- }
- if (EventsIn)
- {
- PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsEnabled = true;
- }
- }
- void OnDisable()
- {
- if (DontDestroy && Instance == this)
- {
- Instance = null;
- }
- }
- float native_width = 800;
- float native_height = 480;
- void OnGUI()
- {
- if (PhotonNetwork.NetworkingClient == null || PhotonNetwork.NetworkingClient.LoadBalancingPeer == null || PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsIncoming == null)
- {
- return;
- }
- //set up scaling
- float rx = Screen.width / native_width;
- float ry = Screen.height / native_height;
- GUI.matrix = Matrix4x4.TRS (new Vector3(0, 0, 0), Quaternion.identity, new Vector3 (rx, ry, 1));
- Rect GuiOffsetRuntime = new Rect(this.GuiOffset);
- if (GuiOffsetRuntime.x < 0)
- {
- GuiOffsetRuntime.x = Screen.width - GuiOffsetRuntime.width;
- }
- GuiRect.xMin = GuiOffsetRuntime.x;
- GuiRect.yMin = GuiOffsetRuntime.y;
- GuiRect.xMax = GuiOffsetRuntime.x + GuiOffsetRuntime.width;
- GuiRect.yMax = GuiOffsetRuntime.y + GuiOffsetRuntime.height;
- GUILayout.BeginArea(GuiRect);
- GUILayout.BeginHorizontal();
- if (this.ServerTimestamp)
- {
- GUILayout.Label((((double)PhotonNetwork.ServerTimestamp) / 1000d).ToString("F3"));
- }
- if (Server)
- {
- GUILayout.Label(PhotonNetwork.ServerAddress + " " + PhotonNetwork.Server);
- }
- if (DetailedConnection)
- {
- GUILayout.Label(PhotonNetwork.NetworkClientState.ToString());
- }
- if (AppVersion)
- {
- GUILayout.Label(PhotonNetwork.NetworkingClient.AppVersion);
- }
- GUILayout.EndHorizontal();
- GUILayout.BeginHorizontal();
- if (UserId)
- {
- GUILayout.Label("UID: " + ((PhotonNetwork.AuthValues != null) ? PhotonNetwork.AuthValues.UserId : "no UserId"));
- GUILayout.Label("UserId:" + PhotonNetwork.LocalPlayer.UserId);
- }
- GUILayout.EndHorizontal();
- if (Room)
- {
- if (PhotonNetwork.InRoom)
- {
- GUILayout.Label(this.RoomProps ? PhotonNetwork.CurrentRoom.ToStringFull() : PhotonNetwork.CurrentRoom.ToString());
- }
- else
- {
- GUILayout.Label("not in room");
- }
- }
- if (EventsIn)
- {
- int fragments = PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsIncoming.FragmentCommandCount;
- GUILayout.Label("Events Received: "+PhotonNetwork.NetworkingClient.LoadBalancingPeer.TrafficStatsGameLevel.EventCount + " Fragments: "+fragments);
- }
- if (this.LocalPlayer)
- {
- GUILayout.Label(PlayerToString(PhotonNetwork.LocalPlayer));
- }
- if (Others)
- {
- foreach (Player player in PhotonNetwork.PlayerListOthers)
- {
- GUILayout.Label(PlayerToString(player));
- }
- }
- if (ExpectedUsers)
- {
- if (PhotonNetwork.InRoom)
- {
- int countExpected = (PhotonNetwork.CurrentRoom.ExpectedUsers != null) ? PhotonNetwork.CurrentRoom.ExpectedUsers.Length : 0;
- GUILayout.Label("Expected: " + countExpected + " " +
- ((PhotonNetwork.CurrentRoom.ExpectedUsers != null) ? string.Join(",", PhotonNetwork.CurrentRoom.ExpectedUsers) : "")
- );
- }
- }
- if (Buttons)
- {
- if (!PhotonNetwork.IsConnected && GUILayout.Button("Connect"))
- {
- PhotonNetwork.ConnectUsingSettings();
- }
- GUILayout.BeginHorizontal();
- if (PhotonNetwork.IsConnected && GUILayout.Button("Disconnect"))
- {
- PhotonNetwork.Disconnect();
- }
- if (PhotonNetwork.IsConnected && GUILayout.Button("Close Socket"))
- {
- PhotonNetwork.NetworkingClient.LoadBalancingPeer.StopThread();
- }
- GUILayout.EndHorizontal();
- if (PhotonNetwork.IsConnected && PhotonNetwork.InRoom && GUILayout.Button("Leave"))
- {
- PhotonNetwork.LeaveRoom();
- }
- if (PhotonNetwork.IsConnected && PhotonNetwork.InRoom && PhotonNetwork.CurrentRoom.PlayerTtl>0 && GUILayout.Button("Leave(abandon)"))
- {
- PhotonNetwork.LeaveRoom(false);
- }
- if (PhotonNetwork.IsConnected && !PhotonNetwork.InRoom && GUILayout.Button("Join Random"))
- {
- PhotonNetwork.JoinRandomRoom();
- }
- if (PhotonNetwork.IsConnected && !PhotonNetwork.InRoom && GUILayout.Button("Create Room"))
- {
- PhotonNetwork.CreateRoom(null);
- }
- }
- GUILayout.EndArea();
- }
- private string PlayerToString(Player player)
- {
- if (PhotonNetwork.NetworkingClient == null)
- {
- Debug.LogError("nwp is null");
- return "";
- }
- return string.Format("#{0:00} '{1}'{5} {4}{2} {3} {6}", player.ActorNumber + "/userId:<" + player.UserId + ">", player.NickName, player.IsMasterClient ? "(master)" : "", this.PlayerProps ? player.CustomProperties.ToStringFull() : "", (PhotonNetwork.LocalPlayer.ActorNumber == player.ActorNumber) ? "(you)" : "", player.UserId, player.IsInactive ? " / Is Inactive" : "");
- }
- }
- }
|