VR Development Framework
v 1.0.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
AVR_Net_ConsoleCommands.cs
1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using UnityEditor;
5 using Unity.Netcode;
6 
7 using AVR.Core;
8 
9 namespace AVR.Net
10 {
11  /// <summary>
12  /// arc-vr-net console commands.
13  /// </summary>
14  [ExecuteInEditMode]
16  {
17  [RuntimeInitializeOnLoadMethod]
18  static void InitCallbacks()
19  {
20  try {
21  NetworkManager.Singleton.OnClientConnectedCallback += (id) => AVR_DevConsole.csuccess("Client #"+id+" connected.", "NetworkManager");
22 
23  NetworkManager.Singleton.OnClientDisconnectCallback += (id) => AVR_DevConsole.cprint("Client #" + id + " disconnected.", "NetworkManager");
24 
25  NetworkManager.Singleton.OnServerStarted += () => {
26  AVR_DevConsole.csuccess("Server started.", "NetworkManager");
27  AVR_DevConsole.command("getaddress", false);
28  AVR_DevConsole.command("getport", false);
29  };
30 
31  NetworkManager.Singleton.OnServerStarted += () => {
32  foreach(var c in Object.FindObjectsOfType<AVR_Component>()) {
33  //c.onNetworkStart();
34  }
35  };
36  } catch(System.Exception) {
37  AVR_DevConsole.warn("arc-vr-net is present in the project but there is no MLAPI Networkmanager! arc-vr-net callback functions will be disabled.");
38  }
39  }
40 
41  #if UNITY_EDITOR
42  [InitializeOnLoadMethod]
43  #endif
44  [RuntimeInitializeOnLoadMethod]
45  static void InitCommands()
46  {
47  AVR_DevConsole.register_command("start_host", (s) => {
48  NetworkManager.Singleton.StartHost();
49  }, 0, "Hosts a game.");
50 
51  AVR_DevConsole.register_command("start_host", (s) => {
52  AVR_DevConsole.command("setport " + s[0], false);
53  NetworkManager.Singleton.StartHost();
54  }, 1, "Hosts a game at given portnumber.");
55 
56  AVR_DevConsole.register_command("start_client", (s) => {
57  NetworkManager.Singleton.StartClient();
58  }, 0, "Tries to connect to remote server.");
59 
60  AVR_DevConsole.register_command("start_client", (s) => {
61  AVR_DevConsole.command("setaddress " + s[0], false);
62  AVR_DevConsole.command("setport " + s[1], false);
63  NetworkManager.Singleton.StartClient();
64  }, 2, "Tries to connect to remote server at given ip address and port.");
65 
66  AVR_DevConsole.register_command("start_server", (s) => {
67  NetworkManager.Singleton.StartServer();
68  });
69 
70  AVR_DevConsole.register_command("stop_host", (s) => {
71  NetworkManager.Singleton.Shutdown();
72  });
73 
74  AVR_DevConsole.register_command("stop_server", (s) => {
75  NetworkManager.Singleton.Shutdown();
76  });
77 
78  AVR_DevConsole.register_command("stop_client", (s) => {
79  NetworkManager.Singleton.Shutdown();
80  });
81 
82  AVR_DevConsole.register_command("disconnect", (s) => {
83  NetworkManager.Singleton.Shutdown();
84  });
85 
86  AVR_DevConsole.register_command("spawnas", (s) => {
87  AVR_Settings.set("/net/playerPrefabHashGenerator", s[0]);
88  AVR_DevConsole.cprint("Set /net/playerPrefabHashGenerator to "+s[0], "AVR_Settings");
89  }, 1, "Sets the /net/playerPrefabHashGenerator setting to the given argument to be used by a playerSpawn object.");
90 
91  AVR_DevConsole.register_command("getport", (s) =>
92  {
93  /* TODO
94  try {
95  MLAPI.Transports.UNET.UNetTransport unetT = (MLAPI.Transports.UNET.UNetTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
96  AVR_DevConsole.print("Port: " + unetT.ServerListenPort);
97  }
98  catch (System.InvalidCastException) {
99  AVR_DevConsole.error("Could not get UNetTransport from NetworkManager. Are you using a different transport type?");
100  }
101  catch (System.Exception) {
102  AVR_DevConsole.error("Could not set Port.");
103  }
104  */
105  }, 0, "Print NetworkManager ConnectPort.");
106 
107  AVR_DevConsole.register_command("getaddress", (s) => {
108  /*
109  try {
110  MLAPI.Transports.UNET.UNetTransport unetT = (MLAPI.Transports.UNET.UNetTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
111  AVR_DevConsole.print("Address: " + unetT.ConnectAddress);
112  }
113  catch (System.InvalidCastException) {
114  AVR_DevConsole.error("Could not get UNetTransport from NetworkManager. Are you using a different transport type?");
115  }
116  catch (System.Exception) {
117  AVR_DevConsole.error("Could not set Port.");
118  }
119  */
120  }, 0, "Print NetworkManager ConnectPort.");
121 
122  AVR_DevConsole.register_command("setport", (s) => {
123  /*
124  try {
125  MLAPI.Transports.UNET.UNetTransport unetT = (MLAPI.Transports.UNET.UNetTransport) NetworkManager.Singleton.NetworkConfig.NetworkTransport;
126  unetT.ConnectPort = unetT.ServerListenPort = int.Parse(s[0]);
127  }
128  catch(System.InvalidCastException) {
129  AVR_DevConsole.error("Could not get UNetTransport from NetworkManager. Are you using a different transport type?");
130  }
131  catch(System.Exception) {
132  AVR_DevConsole.error("Could not set Port.");
133  }
134  */
135  }, 1, "Set NetworkManager ConnectPort and ServerListenPort to given parameter.");
136 
137  AVR_DevConsole.register_command("setaddress", (s) =>
138  {
139  /*
140  try
141  {
142  MLAPI.Transports.UNET.UNetTransport unetT = (MLAPI.Transports.UNET.UNetTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
143  unetT.ConnectAddress = s[0];
144  }
145  catch (System.InvalidCastException)
146  {
147  AVR_DevConsole.error("Could not get UNetTransport from NetworkManager. Are you using a different transport type?");
148  }
149  catch (System.Exception)
150  {
151  AVR_DevConsole.error("Could not set Address.");
152  }
153  */
154  }, 1, "Set NetworkManager ConnectAddress to given parameter.");
155 
156  AVR_DevConsole.register_command("getaddress", (s) =>
157  {
158  /*
159  try {
160  MLAPI.Transports.UNET.UNetTransport unetT = (MLAPI.Transports.UNET.UNetTransport)NetworkManager.Singleton.NetworkConfig.NetworkTransport;
161  AVR_DevConsole.print("Current Transport Address: " + unetT.ConnectAddress + ":" + unetT.ConnectPort);
162  }
163  catch (System.InvalidCastException)
164  {
165  AVR_DevConsole.error("Could not get UNetTransport from NetworkManager. Are you using a different transport type?");
166  }
167  catch (System.Exception)
168  {
169  AVR_DevConsole.error("Could not gat Address.");
170  }
171  */
172  });
173  }
174  }
175 }
static void csuccess(string s, MonoBehaviour obj)
Print success message with a caller-context variable.
arc-vr-net console commands.
Class for the arc-vr developer's console. Functions as a singleton with only static members...
static void cprint(string s, MonoBehaviour obj)
Print with a caller-context variable.
Base class for all arc-vr components. A component is typically a Monobehaviour that represents a virt...