GUIGame.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Mirror;
  2. using StinkySteak.NetcodeBenchmark;
  3. using UnityEngine;
  4. namespace StinkySteak.MirrorBenchmark
  5. {
  6. public class GUIGame : BaseGUIGame
  7. {
  8. [SerializeField] private NetworkManager _networkManagerPrefab;
  9. private NetworkManager _networkManager;
  10. protected override void Initialize()
  11. {
  12. base.Initialize();
  13. _networkManager = Instantiate(_networkManagerPrefab);
  14. RegisterPrefabs(new StressTestEssential[] { _test_1, _test_2, _test_3 });
  15. }
  16. private void RegisterPrefabs(StressTestEssential[] stressTestEssential)
  17. {
  18. for (int i = 0; i < stressTestEssential.Length; i++)
  19. {
  20. _networkManager.spawnPrefabs.Add(stressTestEssential[i].Prefab);
  21. }
  22. }
  23. // MIRROR CHANGE: OnGUI instead of Canvas + TextMeshPro
  24. protected override void OnCustomGUI()
  25. {
  26. if (GUILayout.Button("Start Client"))
  27. {
  28. _networkManager.StartClient();
  29. }
  30. if (GUILayout.Button("Start Server"))
  31. {
  32. _networkManager.StartServer();
  33. }
  34. }
  35. // END MIRROR CHANGE
  36. protected override void StressTest(StressTestEssential stressTest)
  37. {
  38. for (int i = 0; i < stressTest.SpawnCount; i++)
  39. {
  40. GameObject go = Instantiate(stressTest.Prefab);
  41. NetworkServer.Spawn(go);
  42. }
  43. }
  44. protected override void UpdateNetworkStats()
  45. {
  46. if (_networkManager == null) return;
  47. if (!_networkManager.isNetworkActive) return;
  48. if (_networkManager.mode == NetworkManagerMode.ServerOnly)
  49. {
  50. _textLatency = ("Latency: 0ms (Server)"); // MIRROR CHANGE: Canvas + TextMeshPro -> OnGUI
  51. return;
  52. }
  53. _textLatency = ($"Latency: {NetworkTime.rtt * 1_000}ms"); // MIRROR CHANGE: Canvas + TextMeshPro -> OnGUI
  54. }
  55. }
  56. }