Skip to content

Commit 755bc42

Browse files
fix: testproject runtimetests fails on console platforms v1.1.0 (#1664)
* Squashed commit of the following: commit 455a756 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Thu Feb 3 12:19:02 2022 -0600 Revert "test" This reverts commit a2f6fca. commit 1c2d493 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Thu Feb 3 12:17:02 2022 -0600 style white space update commit ce84aba Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Thu Feb 3 11:34:22 2022 -0600 test update This test was failing on some of the console platforms. Made adjustments to avoid timing issues. commit 8ad9b42 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Thu Feb 3 07:53:49 2022 -0600 fix This is a work around for the MTT-1703 issue with RPCs. commit 85fded2 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Thu Feb 3 05:40:31 2022 -0600 style white spaces. commit 82606ea Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 22:31:35 2022 -0600 test update Still trying to get rid of IL2CPP error commit 5915c3e Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 20:13:45 2022 -0600 test fix Trying to figure out weird ILCPP serialization issue. commit 091d82f Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 18:01:13 2022 -0600 test refactor Needed some MULTIPLAYER_TOOLS helpers that I accidentally excluded. commit a2f6fca Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 12:03:10 2022 -0600 test disabling all tests in Unity.Netcode.RuntimeTest commit 5319473 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 12:02:28 2022 -0600 revert reverting as this was a dumb approach. commit 312a5f5 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 11:19:59 2022 -0600 test Seeing if this fixes the weird issue with the standards failing. commit 76af4d4 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 09:08:26 2022 -0600 test turning off the Unity.Netcode.RuntimeTests on console platforms temporarily in order to run just the TestProject.RuntimeTests on consoles. commit 67566d6 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Wed Feb 2 09:06:27 2022 -0600 refactor Removing assembly references not being used. commit 2480daf Merge: bee18d3 096f614 Author: Noel Stephens <noel.stephens@unity3d.com> Date: Tue Feb 1 20:36:59 2022 -0600 Merge branch 'develop' into fix/test-roject-runtimetests-standalone-testrunner-build commit bee18d3 Merge: 2fa12fa e07450f Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 19:28:11 2022 -0600 Merge branch 'develop' into fix/test-roject-runtimetests-standalone-testrunner-build commit 2fa12fa Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 19:05:18 2022 -0600 fix This fixes the issues with running the NetworkVariableInitializationOnNetworkSpawnTest when it was run in a stand alone test runner build which should be console friendly at this point. commit c47ea65 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 19:04:03 2022 -0600 fix Fixing issues with the NetworkPrefabPoolAdditive class that is used in several tests including the NetworkSceneManagerTests. The issues fixed were related to object references not being around (i.e. NetworkManager) as well as came up with a better way to detect if the coroutine was running in order to determine if it needed to be stopped. commit 1ee1297 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 17:56:57 2022 -0600 fix The following updates to NetworkSceneManagerDDOLTests in NetworkSceneManagerTests.cs get it passing in a stand alone test runner build which should make it console friendly. commit 0b955fe Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 17:44:06 2022 -0600 fix This fixes the issues with running NestedNetworkManagerTests in a stand alone test runner build and should run on consoles. commit 2f18881 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 17:30:41 2022 -0600 fix The following updates to the MessageOrdering tests should get them working on consoles. commit a967264 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 17:04:25 2022 -0600 update Modifying the TestProject.RuntimeTests assembly to be a runtime only assembly. Had to migrate the TestProject.RuntimeTests out of the #if UNITY_EDITOR region in order to be able to compile a stand alone test runner build. commit d8e5b1f Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 12:22:06 2022 -0600 refactor This commit changes the NetworkObjectParentingTests and ReparentingCubeNetBhv namespace to TestProject.RuntimeTests and uses the standard SceneManager to load the scene as opposed to the editor version. commit d5efbe6 Author: NoelStephensUnity <73188597+NoelStephensUnity@users.noreply.github.com> Date: Tue Feb 1 12:14:48 2022 -0600 refactor This commit migrates the NetworkPrefabGlobalObjectIdHashTests and NetworkObjectGlobalObjectIdHashTests into the TestProject.EditorTests assembly since they depend upon editor specific library calls and could be run as EditMode tests. * fix NetworkVariableInitOnNetworkSpawn needed to be updated. * fix disabling tests that were specific to snapshot. * style Added note about the SIPTransport's DontShowInTransportDropdown * Update Found a different way to remove the DontShowInTransportDropdownAttribute which helps to remove the reference to the editor assembly.
1 parent 0b23d7b commit 755bc42

34 files changed

+237
-148
lines changed

com.unity.netcode.gameobjects/Editor/DontShowInTransportDropdownAttribute.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

com.unity.netcode.gameobjects/Editor/DontShowInTransportDropdownAttribute.cs.meta

Lines changed: 0 additions & 3 deletions
This file was deleted.

com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ private void ReloadTransports()
5757

5858
foreach (var type in types)
5959
{
60-
if (type.IsSubclassOf(typeof(NetworkTransport)) && type.GetCustomAttributes(typeof(DontShowInTransportDropdownAttribute), true).Length == 0)
60+
if (type.IsSubclassOf(typeof(NetworkTransport)) && !type.IsSubclassOf(typeof(TestingNetworkTransport)) && type != typeof(TestingNetworkTransport))
6161
{
6262
m_TransportTypes.Add(type);
6363
}

com.unity.netcode.gameobjects/Runtime/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
[assembly: InternalsVisibleTo("Unity.Netcode.Editor.CodeGen")]
66
[assembly: InternalsVisibleTo("Unity.Netcode.Editor")]
77
[assembly: InternalsVisibleTo("TestProject.EditorTests")]
8-
[assembly: InternalsVisibleTo("TestProject.RuntimeTests")]
98
[assembly: InternalsVisibleTo("TestProject.ToolsIntegration.RuntimeTests")]
109
#endif
10+
[assembly: InternalsVisibleTo("TestProject.RuntimeTests")]
1111
[assembly: InternalsVisibleTo("Unity.Netcode.RuntimeTests")]
1212

com.unity.netcode.gameobjects/Runtime/Transports/NetworkTransport.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,11 @@ protected void InvokeOnTransportEvent(NetworkEvent eventType, ulong clientId, Ar
9898
/// /// <param name="networkManager">optionally pass in NetworkManager</param>
9999
public abstract void Initialize(NetworkManager networkManager = null);
100100
}
101+
102+
#if UNITY_INCLUDE_TESTS
103+
public abstract class TestingNetworkTransport : NetworkTransport
104+
{
105+
106+
}
107+
#endif
101108
}

com.unity.netcode.gameobjects/Tests/Editor/NetworkManagerMessageHandlerTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
using System;
2-
using Unity.Netcode.Editor;
2+
33

44
namespace Unity.Netcode.EditorTests
55
{
6-
// Should probably have one of these for more files? In the future we could use the SIPTransport?
7-
[DontShowInTransportDropdown]
8-
internal class DummyTransport : NetworkTransport
6+
internal class DummyTransport : TestingNetworkTransport
97
{
108
public override ulong ServerClientId { get; } = 0;
119
public override void Send(ulong clientId, ArraySegment<byte> payload, NetworkDelivery networkDelivery)

com.unity.netcode.gameobjects/Tests/Runtime/Transport/SIPTransport.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
#if UNITY_EDITOR
4-
using Unity.Netcode.Editor;
5-
#endif
63
using UnityEngine;
74

85
namespace Unity.Netcode.RuntimeTests
@@ -13,10 +10,7 @@ namespace Unity.Netcode.RuntimeTests
1310
/// it's designed for the netcode in a way where no networking stack has to be available
1411
/// it's designed for testing purposes and it's not designed with speed in mind
1512
/// </summary>
16-
#if UNITY_EDITOR
17-
[DontShowInTransportDropdown]
18-
#endif
19-
public class SIPTransport : NetworkTransport
13+
public class SIPTransport : TestingNetworkTransport
2014
{
2115
private struct Event
2216
{

com.unity.netcode.gameobjects/Tests/Runtime/com.unity.netcode.runtimetests.asmdef

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"rootNamespace": "Unity.Netcode.RuntimeTests",
44
"references": [
55
"Unity.Netcode.Runtime",
6-
"Unity.Netcode.Editor",
76
"Unity.Netcode.Components",
87
"Unity.Collections",
98
"UnityEngine.TestRunner",

testproject/Assets/Tests/Runtime/GlobalObjectIdHash/NetworkObjectGlobalObjectIdHashTests.cs renamed to testproject/Assets/Tests/Editor/GlobalObjectIdHash/NetworkObjectGlobalObjectIdHashTests.cs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,32 @@
44
using UnityEditor.SceneManagement;
55
using UnityEngine.SceneManagement;
66
using UnityEngine.TestTools;
7+
using Unity.Netcode;
78

8-
namespace Unity.Netcode.RuntimeTests
9+
namespace TestProject.EditorTests
910
{
1011
public class NetworkObjectGlobalObjectIdHashTests
1112
{
1213
private Scene m_TestScene;
1314

14-
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
15-
{
16-
if (scene.name == nameof(NetworkObjectGlobalObjectIdHashTests))
17-
{
18-
m_TestScene = scene;
19-
}
20-
}
21-
2215
[UnitySetUp]
2316
public IEnumerator Setup()
2417
{
25-
SceneManager.sceneLoaded += OnSceneLoaded;
26-
27-
const string scenePath = "Assets/Tests/Runtime/GlobalObjectIdHash/" + nameof(NetworkObjectGlobalObjectIdHashTests) + ".unity";
18+
const string scenePath = "Assets/Tests/Editor/GlobalObjectIdHash/" + nameof(NetworkObjectGlobalObjectIdHashTests) + ".unity";
2819

29-
yield return EditorSceneManager.LoadSceneAsyncInPlayMode(scenePath, new LoadSceneParameters(LoadSceneMode.Additive));
20+
m_TestScene = EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Additive);
3021
Assert.That(m_TestScene.isLoaded, Is.True);
22+
yield return null;
3123
}
3224

3325
[UnityTearDown]
3426
public IEnumerator Teardown()
3527
{
36-
SceneManager.sceneLoaded -= OnSceneLoaded;
37-
3828
if (m_TestScene.isLoaded)
3929
{
40-
yield return SceneManager.UnloadSceneAsync(m_TestScene);
30+
Assert.True(EditorSceneManager.CloseScene(m_TestScene, true));
4131
}
32+
yield return null;
4233
}
4334

4435
[Test]

testproject/Assets/Tests/Runtime/GlobalObjectIdHash/NetworkPrefabGlobalObjectIdHashTests.cs renamed to testproject/Assets/Tests/Editor/GlobalObjectIdHash/NetworkPrefabGlobalObjectIdHashTests.cs

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,43 @@
11
using System.Collections;
22
using System.Collections.Generic;
33
using NUnit.Framework;
4+
using UnityEngine;
45
using UnityEditor.SceneManagement;
56
using UnityEngine.SceneManagement;
67
using UnityEngine.TestTools;
8+
using Unity.Netcode;
79

8-
namespace Unity.Netcode.RuntimeTests
10+
namespace TestProject.EditorTests
911
{
1012
public class NetworkPrefabGlobalObjectIdHashTests
1113
{
1214
private Scene m_TestScene;
1315

14-
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
15-
{
16-
if (scene.name == nameof(NetworkPrefabGlobalObjectIdHashTests))
17-
{
18-
m_TestScene = scene;
19-
}
20-
}
21-
2216
[UnitySetUp]
2317
public IEnumerator Setup()
2418
{
25-
SceneManager.sceneLoaded += OnSceneLoaded;
26-
27-
const string scenePath = "Assets/Tests/Runtime/GlobalObjectIdHash/" + nameof(NetworkPrefabGlobalObjectIdHashTests) + ".unity";
28-
yield return EditorSceneManager.LoadSceneAsyncInPlayMode(scenePath, new LoadSceneParameters(LoadSceneMode.Additive));
19+
const string scenePath = "Assets/Tests/Editor/GlobalObjectIdHash/" + nameof(NetworkPrefabGlobalObjectIdHashTests) + ".unity";
20+
m_TestScene = EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Additive);
21+
Assert.That(m_TestScene.isLoaded, Is.True);
22+
yield return null;
2923
}
3024

3125
[UnityTearDown]
3226
public IEnumerator Teardown()
3327
{
34-
SceneManager.sceneLoaded -= OnSceneLoaded;
35-
3628
if (m_TestScene.isLoaded)
3729
{
38-
yield return SceneManager.UnloadSceneAsync(m_TestScene);
30+
Assert.True(EditorSceneManager.CloseScene(m_TestScene, true));
3931
}
32+
yield return null;
4033
}
4134

4235
[Test]
4336
public void VerifyUniquenessOfNetworkPrefabs()
4437
{
4538
Assert.That(m_TestScene.isLoaded, Is.True);
46-
47-
var networkManager = NetworkManager.Singleton;
39+
var networkManagerObject = GameObject.Find("[NetworkManager]");
40+
var networkManager = networkManagerObject.GetComponent<NetworkManager>();
4841
Assert.That(networkManager, Is.Not.Null);
4942
Assert.That(networkManager.NetworkConfig, Is.Not.Null);
5043
Assert.That(networkManager.NetworkConfig.NetworkPrefabs, Is.Not.Null);

testproject/Assets/Tests/Manual/Scripts/NetworkPrefabPoolAdditive.cs

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ private void RegisterCustomPrefabHandler()
6767

6868
private void DeregisterCustomPrefabHandler()
6969
{
70-
// Register the custom spawn handler?
71-
if (EnableHandler && NetworkManager && NetworkManager.PrefabHandler != null)
70+
if (EnableHandler && NetworkObject != null && (IsSpawned || (NetworkManager != null && NetworkManager.PrefabHandler != null)))
7271
{
7372
NetworkManager.PrefabHandler.RemoveHandler(ServerObjectToPool);
7473
if (IsClient && m_ObjectToSpawn != null)
@@ -84,29 +83,17 @@ private void DeregisterCustomPrefabHandler()
8483
/// </summary>
8584
public override void OnDestroy()
8685
{
87-
if (IsServer)
88-
{
89-
StopCoroutine(SpawnObjects());
90-
}
86+
InternalStopCoroutine();
9187
DeregisterCustomPrefabHandler();
9288

93-
94-
95-
if (NetworkManager != null && NetworkManager.SceneManager != null)
89+
if (NetworkObject != null && NetworkManager != null && NetworkManager.SceneManager != null)
9690
{
9791
NetworkManager.SceneManager.OnSceneEvent -= OnSceneEvent;
9892
}
9993

10094
base.OnDestroy();
10195
}
10296

103-
// Start is called before the first frame update
104-
private void Start()
105-
{
106-
NetworkManager.SceneManager.OnSceneEvent += OnSceneEvent;
107-
}
108-
109-
11097
/// <summary>
11198
/// For additive scenes, we only clear out our pooled NetworkObjects if we are migrating them from the ActiveScene
11299
/// to the scene where this NetworkPrefabPoolAdditive component is instantiated.
@@ -203,10 +190,7 @@ private void CleanNetworkObjects()
203190
/// </summary>
204191
private void OnUnloadScene()
205192
{
206-
if (IsServer)
207-
{
208-
StopCoroutine(SpawnObjects());
209-
}
193+
InternalStopCoroutine();
210194

211195
// De-register the custom prefab handler
212196
DeregisterCustomPrefabHandler();
@@ -221,6 +205,7 @@ private void OnUnloadScene()
221205
/// </summary>
222206
public override void OnNetworkSpawn()
223207
{
208+
NetworkManager.SceneManager.OnSceneEvent += OnSceneEvent;
224209
InitializeObjectPool();
225210
if (IsServer)
226211
{
@@ -361,15 +346,26 @@ public void UpdateSpawnsPerSecond()
361346
if (SpawnsPerSecond == 0 && m_IsSpawningObjects)
362347
{
363348
m_IsSpawningObjects = false;
364-
StopCoroutine(SpawnObjects());
349+
InternalStopCoroutine();
365350
}
366351

367352
}
368353

369354

370355
private void OnDisable()
371356
{
372-
StopCoroutine(SpawnObjects());
357+
InternalStopCoroutine();
358+
}
359+
360+
private bool m_CoroutineHasStarted = false;
361+
362+
private void InternalStopCoroutine()
363+
{
364+
if (m_CoroutineHasStarted)
365+
{
366+
StopCoroutine(SpawnObjects());
367+
m_CoroutineHasStarted = false;
368+
}
373369
}
374370

375371
/// <summary>
@@ -388,6 +384,7 @@ private IEnumerator SpawnObjects()
388384
{
389385
yield return new WaitForSeconds(m_DelaySpawning - Time.realtimeSinceStartup);
390386
}
387+
m_CoroutineHasStarted = true;
391388

392389
m_IsSpawningObjects = true;
393390
while (m_IsSpawningObjects)

testproject/Assets/Tests/Manual/testproject.manualtests.asmdef

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@
44
"references": [
55
"TestProject",
66
"Unity.Netcode.Runtime",
7-
"Unity.Netcode.Editor",
87
"Unity.Netcode.Components"
9-
]
10-
}
8+
],
9+
"includePlatforms": [],
10+
"excludePlatforms": [],
11+
"allowUnsafeCode": false,
12+
"overrideReferences": false,
13+
"precompiledReferences": [],
14+
"autoReferenced": true,
15+
"defineConstraints": [],
16+
"versionDefines": [],
17+
"noEngineReferences": false
18+
}

testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,8 @@ public IEnumerator ValidateNetworkObjectSynchronization()
9595
instanceNetworkObject.NetworkManagerOwner = m_ServerNetworkManager;
9696
instanceNetworkObject.Spawn();
9797
var serverobjectToNotDestroyBehaviour = objectInstance.GetComponent<ObjectToNotDestroyBehaviour>();
98-
99-
int nextFrameNumber = Time.frameCount + 32;
100-
yield return new WaitUntil(() => Time.frameCount >= nextFrameNumber);
98+
var waitForTick = new WaitForSeconds(1.0f / m_ServerNetworkManager.NetworkConfig.TickRate);
99+
yield return waitForTick;
101100

102101
Assert.IsTrue(objectInstance.scene.name == "DontDestroyOnLoad");
103102

@@ -106,24 +105,45 @@ public IEnumerator ValidateNetworkObjectSynchronization()
106105
networkManager.StartClient();
107106
}
108107

109-
yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.WaitForClientsConnected(m_ClientNetworkManagers));
108+
yield return MultiInstanceHelpers.WaitForClientsConnected(m_ClientNetworkManagers);
110109

111-
nextFrameNumber = Time.frameCount + 32;
112-
yield return new WaitUntil(() => Time.frameCount >= nextFrameNumber);
113-
114-
foreach (var networkManager in m_ClientNetworkManagers)
110+
yield return waitForTick;
111+
var timeOut = Time.realtimeSinceStartup + 2.0f;
112+
var timedOut = false;
113+
while (!timedOut)
115114
{
116-
foreach (var spawnedObject in networkManager.SpawnManager.SpawnedObjectsList)
115+
var allClientConditionsHaveBeenReached = true;
116+
foreach (var networkManager in m_ClientNetworkManagers)
117117
{
118-
if (spawnedObject.NetworkManager == networkManager && spawnedObject.gameObject.name.Contains("DontDestroyOnLoadObject"))
118+
foreach (var spawnedObject in networkManager.SpawnManager.SpawnedObjectsList)
119119
{
120-
Assert.IsTrue(spawnedObject.gameObject.scene.name == "DontDestroyOnLoad");
121-
var objectToNotDestroyBehaviour = spawnedObject.gameObject.GetComponent<ObjectToNotDestroyBehaviour>();
122-
Assert.Greater(objectToNotDestroyBehaviour.CurrentPing, 0);
123-
Assert.AreEqual(serverobjectToNotDestroyBehaviour.CurrentPing, objectToNotDestroyBehaviour.CurrentPing);
120+
if (spawnedObject.NetworkManager == networkManager && spawnedObject.gameObject.name.Contains("DontDestroyOnLoadObject"))
121+
{
122+
if (spawnedObject.gameObject.scene.name != "DontDestroyOnLoad")
123+
{
124+
allClientConditionsHaveBeenReached = false;
125+
break;
126+
}
127+
var objectToNotDestroyBehaviour = spawnedObject.gameObject.GetComponent<ObjectToNotDestroyBehaviour>();
128+
if (objectToNotDestroyBehaviour.CurrentPing == 0 || serverobjectToNotDestroyBehaviour.CurrentPing != objectToNotDestroyBehaviour.CurrentPing)
129+
{
130+
allClientConditionsHaveBeenReached = false;
131+
break;
132+
}
133+
}
124134
}
125135
}
136+
137+
if (allClientConditionsHaveBeenReached)
138+
{
139+
break;
140+
}
141+
142+
yield return waitForTick;
143+
144+
timedOut = timeOut < Time.realtimeSinceStartup;
126145
}
146+
Assert.False(timedOut, "Timed out while waiting for all client conditions to be reached!");
127147
}
128148
}
129149
}

0 commit comments

Comments
 (0)