Skip to content

Commit 0ea502b

Browse files
authored
Replacing community NetworkManagerHUD with a simpler implementation (#993)
The implementation is reliant on UnetTransport - had to switch back
1 parent f5c51f2 commit 0ea502b

File tree

1 file changed

+17
-95
lines changed

1 file changed

+17
-95
lines changed
Lines changed: 17 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
using System.Runtime.CompilerServices;
21
using Unity.Multiplayer.Netcode;
3-
using Unity.Multiplayer.Netcode.Transports.UNET;
42
using UnityEngine;
53

64
namespace TestProject.ManualTests
@@ -9,122 +7,46 @@ namespace TestProject.ManualTests
97
[DisallowMultipleComponent]
108
public class NetworkManagerHud : MonoBehaviour
119
{
12-
private NetworkManager m_NetworkManager;
13-
private UNetTransport m_Transport;
14-
private GUIStyle m_LabelTextStyle;
15-
16-
// This is needed to make the port field more convenient. GUILayout.TextField is very limited and we want to be able to clear the field entirely so we can't cache this as ushort.
17-
private string m_PortString;
18-
19-
public Vector2 DrawOffset = new Vector2(10, 10);
20-
21-
public Color LabelColor = Color.black;
22-
23-
private void Awake()
24-
{
25-
// Only cache networking manager but not transport here because transport could change anytime.
26-
m_NetworkManager = GetComponent<NetworkManager>();
27-
m_LabelTextStyle = new GUIStyle(GUIStyle.none);
28-
}
29-
3010
private void OnGUI()
3111
{
32-
m_LabelTextStyle.normal.textColor = LabelColor;
33-
34-
m_Transport = (UNetTransport)m_NetworkManager.NetworkConfig.NetworkTransport;
35-
36-
if (m_PortString == null)
12+
GUILayout.BeginArea(new Rect(10, 10, 300, 300));
13+
14+
if (!NetworkManager.Singleton.IsClient && !NetworkManager.Singleton.IsServer)
3715
{
38-
m_PortString = m_Transport.ConnectPort.ToString();
39-
}
40-
41-
GUILayout.BeginArea(new Rect(DrawOffset, new Vector2(200, 200)));
42-
43-
if (IsRunning(m_NetworkManager))
44-
{
45-
DrawStatusGUI();
16+
StartButtons();
4617
}
4718
else
4819
{
49-
DrawConnectGUI();
20+
StatusLabels();
5021
}
5122

5223
GUILayout.EndArea();
5324
}
5425

55-
private void DrawConnectGUI()
26+
private static void StartButtons()
5627
{
57-
GUILayout.BeginHorizontal();
58-
GUILayout.Space(10);
59-
GUILayout.Label("Address", m_LabelTextStyle);
60-
GUILayout.Label("Port", m_LabelTextStyle);
61-
62-
GUILayout.EndHorizontal();
63-
64-
GUILayout.BeginHorizontal();
65-
66-
m_Transport.ConnectAddress = GUILayout.TextField(m_Transport.ConnectAddress);
67-
m_PortString = GUILayout.TextField(m_PortString);
68-
if (ushort.TryParse(m_PortString, out ushort port))
28+
if (GUILayout.Button("Host"))
6929
{
70-
m_Transport.ConnectPort = port;
30+
NetworkManager.Singleton.StartHost();
7131
}
72-
73-
GUILayout.EndHorizontal();
74-
75-
if (GUILayout.Button("Host (Server + Client)"))
32+
33+
if (GUILayout.Button("Client"))
7634
{
77-
m_NetworkManager.StartHost();
35+
NetworkManager.Singleton.StartClient();
7836
}
79-
80-
GUILayout.BeginHorizontal();
81-
37+
8238
if (GUILayout.Button("Server"))
8339
{
84-
m_NetworkManager.StartServer();
40+
NetworkManager.Singleton.StartServer();
8541
}
86-
87-
if (GUILayout.Button("Client"))
88-
{
89-
m_NetworkManager.StartClient();
90-
}
91-
92-
GUILayout.EndHorizontal();
9342
}
9443

95-
private void DrawStatusGUI()
44+
private static void StatusLabels()
9645
{
97-
if (m_NetworkManager.IsServer)
98-
{
99-
var mode = m_NetworkManager.IsHost ? "Host" : "Server";
100-
GUILayout.Label($"{mode} active on port: {m_Transport.ConnectPort.ToString()}", m_LabelTextStyle);
101-
}
102-
else
103-
{
104-
if (m_NetworkManager.IsConnectedClient)
105-
{
106-
GUILayout.Label($"Client connected {m_Transport.ConnectAddress}:{m_Transport.ConnectPort.ToString()}", m_LabelTextStyle);
107-
}
108-
}
46+
var mode = NetworkManager.Singleton.IsHost ? "Host" : NetworkManager.Singleton.IsServer ? "Server" : "Client";
10947

110-
if (GUILayout.Button("Stop"))
111-
{
112-
if (m_NetworkManager.IsHost)
113-
{
114-
m_NetworkManager.StopHost();
115-
}
116-
else if (m_NetworkManager.IsServer)
117-
{
118-
m_NetworkManager.StopServer();
119-
}
120-
else if (m_NetworkManager.IsClient)
121-
{
122-
m_NetworkManager.StopClient();
123-
}
124-
}
48+
GUILayout.Label($"Transport: {NetworkManager.Singleton.NetworkConfig.NetworkTransport.GetType().Name}");
49+
GUILayout.Label($"Mode: {mode}");
12550
}
126-
127-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
128-
private bool IsRunning(NetworkManager networkManager) => networkManager.IsServer || networkManager.IsClient;
12951
}
13052
}

0 commit comments

Comments
 (0)