VR Development Framework
v 1.0.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
AVR_BasicNetworkMenu.cs
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using Unity.Netcode;
5 
6 namespace AVR.Net {
7  /// <summary>
8  /// Lets you run the start_host, start_client and start_server commands through a very simple UI.
9  /// </summary>
10  public class AVR_BasicNetworkMenu : MonoBehaviour
11  {
12  void OnGUI()
13  {
14  GUILayout.BeginArea(new Rect(10, 10, 300, 300));
15  if (!NetworkManager.Singleton.IsClient && !NetworkManager.Singleton.IsServer)
16  {
17  StartButtons();
18  }
19  else
20  {
21  StatusLabels();
22  }
23 
24  GUILayout.EndArea();
25  }
26 
27  static void StartButtons()
28  {
29  if (GUILayout.Button("Host")) AVR.Core.AVR_DevConsole.command("start_host");
30  if (GUILayout.Button("Client")) AVR.Core.AVR_DevConsole.command("start_client");
31  if (GUILayout.Button("Server")) AVR.Core.AVR_DevConsole.command("start_server");
32  }
33 
34  static void StatusLabels()
35  {
36  var mode = NetworkManager.Singleton.IsHost ?
37  "Host" : NetworkManager.Singleton.IsServer ? "Server" : "Client";
38 
39  GUILayout.Label("Transport: " +
40  NetworkManager.Singleton.NetworkConfig.NetworkTransport.GetType().Name);
41  GUILayout.Label("Mode: " + mode);
42 
43  if(NetworkManager.Singleton.IsServer)
44  {
45  if (GUILayout.Button("Shutdown Server")) NetworkManager.Singleton.Shutdown();
46  }
47  else if (NetworkManager.Singleton.IsHost)
48  {
49  if (GUILayout.Button("Stop Host")) NetworkManager.Singleton.Shutdown();
50  }
51  else if (NetworkManager.Singleton.IsClient)
52  {
53  if (GUILayout.Button("Disconnect")) NetworkManager.Singleton.Shutdown();
54  }
55  }
56  }
57 }
Lets you run the start_host, start_client and start_server commands through a very simple UI...