From 5fc00151441d7e6776168a5e06210a78e21a627a Mon Sep 17 00:00:00 2001
From: ALEXTANG <574809918@qq.com>
Date: Tue, 30 Aug 2022 11:02:24 +0800
Subject: [PATCH] DebugerComponent
---
...uggerComponent.NetworkInformationWindow.cs | 61 +++++++++++++++++++
...Component.NetworkInformationWindow.cs.meta | 3 +
.../Base/Debugger/Imp/DebuggerComponent.cs | 2 +
3 files changed, 66 insertions(+)
create mode 100644 Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs
create mode 100644 Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta
diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs
new file mode 100644
index 00000000..ce0e091d
--- /dev/null
+++ b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs
@@ -0,0 +1,61 @@
+using UnityEngine;
+
+namespace TEngine.Runtime
+{
+ public sealed partial class DebuggerComponent
+ {
+ private sealed class NetworkInformationWindow : ScrollableDebuggerWindowBase
+ {
+ private Network m_NetworkComponent = null;
+
+ public override void Initialize(params object[] args)
+ {
+ m_NetworkComponent = Network.Instance;
+ if (m_NetworkComponent == null)
+ {
+ Log.Fatal("Network component is invalid.");
+ return;
+ }
+ }
+
+ protected override void OnDrawScrollableWindow()
+ {
+ GUILayout.Label("Network Information");
+ GUILayout.BeginVertical("box");
+ {
+ DrawItem("Network Channel Count", m_NetworkComponent.NetworkChannelCount.ToString());
+ }
+ GUILayout.EndVertical();
+ INetworkChannel[] networkChannels = m_NetworkComponent.GetAllNetworkChannels();
+ for (int i = 0; i < networkChannels.Length; i++)
+ {
+ DrawNetworkChannel(networkChannels[i]);
+ }
+ }
+
+ private void DrawNetworkChannel(INetworkChannel networkChannel)
+ {
+ GUILayout.Label(Utility.Text.Format("Network Channel: {0} ({1})", networkChannel.Name, networkChannel.Connected ? "Connected" : "Disconnected"));
+ GUILayout.BeginVertical("box");
+ {
+ DrawItem("Service Type", networkChannel.ServiceType.ToString());
+ DrawItem("Address Family", networkChannel.AddressFamily.ToString());
+ DrawItem("Local Address", networkChannel.Connected ? networkChannel.Socket.LocalEndPoint.ToString() : "Unavailable");
+ DrawItem("Remote Address", networkChannel.Connected ? networkChannel.Socket.RemoteEndPoint.ToString() : "Unavailable");
+ DrawItem("Send Packet", Utility.Text.Format("{0} / {1}", networkChannel.SendPacketCount.ToString(), networkChannel.SentPacketCount.ToString()));
+ DrawItem("Receive Packet", Utility.Text.Format("{0} / {1}", networkChannel.ReceivePacketCount.ToString(), networkChannel.ReceivedPacketCount.ToString()));
+ DrawItem("Miss Heart Beat Count", networkChannel.MissHeartBeatCount.ToString());
+ DrawItem("Heart Beat", Utility.Text.Format("{0} / {1}", networkChannel.HeartBeatElapseSeconds.ToString("F2"), networkChannel.HeartBeatInterval.ToString("F2")));
+ if (networkChannel.Connected)
+ {
+ if (GUILayout.Button("Disconnect", GUILayout.Height(30f)))
+ {
+ networkChannel.Close();
+ }
+ }
+ }
+ GUILayout.EndVertical();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta
new file mode 100644
index 00000000..facb8775
--- /dev/null
+++ b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.NetworkInformationWindow.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d9234c66fc6c4421ad762cf70fe9e0a0
+timeCreated: 1661828316
\ No newline at end of file
diff --git a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs
index 289da695..bfa8d29b 100644
--- a/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs
+++ b/Assets/TEngine/Scripts/Runtime/Core/Base/Debugger/Imp/DebuggerComponent.cs
@@ -189,6 +189,7 @@ namespace TEngine.Runtime
private RuntimeMemoryInformationWindow m_RuntimeMemoryScriptableObjectInformationWindow = new RuntimeMemoryInformationWindow();
private MemoryPoolInformationWindow m_MemoryPoolInformationWindow = new MemoryPoolInformationWindow();
+ private NetworkInformationWindow m_NetworkInformationWindow = new NetworkInformationWindow();
private SettingsWindow m_SettingsWindow = new SettingsWindow();
#endregion
@@ -228,6 +229,7 @@ namespace TEngine.Runtime
RegisterDebuggerWindow("Profiler/Memory/ScriptableObject", m_RuntimeMemoryScriptableObjectInformationWindow);
RegisterDebuggerWindow("Profiler/Memory Pool", m_MemoryPoolInformationWindow);
+ RegisterDebuggerWindow("Profiler/Network", m_NetworkInformationWindow);
RegisterDebuggerWindow("Other/Settings", m_SettingsWindow);