Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,11 @@ private static void ScenesInBuildActiveSceneCheck()
var scenesList = EditorBuildSettings.scenes.ToList();
var activeScene = SceneManager.GetActiveScene();
var isSceneInBuildSettings = scenesList.Count((c) => c.path == activeScene.path) == 1;
#if UNITY_2023_1_OR_NEWER
Comment thread
0xFA11 marked this conversation as resolved.
var networkManager = Object.FindFirstObjectByType<NetworkManager>();
#else
var networkManager = Object.FindObjectOfType<NetworkManager>();
#endif
if (!isSceneInBuildSettings && networkManager != null)
{
if (networkManager.NetworkConfig != null && networkManager.NetworkConfig.EnableSceneManagement)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2018,7 +2018,11 @@ internal void PopulateScenePlacedObjects(Scene sceneToFilterBy, bool clearSceneP
ScenePlacedObjects.Clear();
}

#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

<3

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how there's sort by InstanceId on the API built-in.

#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
#endif

// Just add every NetworkObject found that isn't already in the list
// With additive scenes, we can have multiple in-scene placed NetworkObjects with the same GlobalObjectIdHash value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,12 @@ internal void AddDespawnedInSceneNetworkObjects()
{
m_DespawnedInSceneObjectsSync.Clear();
// Find all active and non-active in-scene placed NetworkObjects
#if UNITY_2023_1_OR_NEWER
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsInactive.Include, UnityEngine.FindObjectsSortMode.InstanceID).Where((c) => c.NetworkManager == m_NetworkManager);
#else
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>(includeInactive: true).Where((c) => c.NetworkManager == m_NetworkManager);

#endif
foreach (var sobj in inSceneNetworkObjects)
{
if (sobj.IsSceneObject.HasValue && sobj.IsSceneObject.Value && !sobj.IsSpawned)
Expand Down Expand Up @@ -657,7 +662,11 @@ internal void ReadClientReSynchronizationData(FastBufferReader reader)

if (networkObjectsToRemove.Length > 0)
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsSortMode.InstanceID);
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
#endif
var networkObjectIdToNetworkObject = new Dictionary<ulong, NetworkObject>();
foreach (var networkObject in networkObjects)
{
Expand Down Expand Up @@ -785,8 +794,14 @@ private void DeserializeDespawnedInScenePlacedNetworkObjects()
var objectRelativeScene = m_NetworkManager.SceneManager.ScenesLoaded[localSceneHandle];

// Find all active and non-active in-scene placed NetworkObjects
#if UNITY_2023_1_OR_NEWER
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsInactive.Include, UnityEngine.FindObjectsSortMode.InstanceID).Where((c) =>
c.GetSceneOriginHandle() == localSceneHandle && (c.IsSceneObject != false)).ToList();
#else
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>(includeInactive: true).Where((c) =>
c.GetSceneOriginHandle() == localSceneHandle && (c.IsSceneObject != false)).ToList();
#endif


foreach (var inSceneObject in inSceneNetworkObjects)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -658,7 +658,11 @@ internal void DespawnObject(NetworkObject networkObject, bool destroyObject = fa
// Makes scene objects ready to be reused
internal void ServerResetShudownStateForSceneObjects()
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID).Where((c) => c.IsSceneObject != null && c.IsSceneObject == true);
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsSceneObject != null && c.IsSceneObject == true);
#endif
foreach (var sobj in networkObjects)
{
sobj.IsSpawned = false;
Expand Down Expand Up @@ -689,7 +693,11 @@ internal void ServerDestroySpawnedSceneObjects()

internal void DespawnAndDestroyNetworkObjects()
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
#endif

for (int i = 0; i < networkObjects.Length; i++)
{
Expand Down Expand Up @@ -719,7 +727,11 @@ internal void DespawnAndDestroyNetworkObjects()

internal void DestroySceneObjects()
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
#endif

for (int i = 0; i < networkObjects.Length; i++)
{
Expand All @@ -746,7 +758,11 @@ internal void DestroySceneObjects()

internal void ServerSpawnSceneObjectsOnStartSweep()
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
#endif
var networkObjectsToSpawn = new List<NetworkObject>();

for (int i = 0; i < networkObjects.Length; i++)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,12 @@ private static void SceneManager_sceneLoaded(Scene scene, LoadSceneMode loadScen
private static void ProcessInSceneObjects(Scene scene, NetworkManager networkManager)
{
// Get all in-scene placed NeworkObjects that were instantiated when this scene loaded
#if UNITY_2023_1_OR_NEWER
var inSceneNetworkObjects = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID).Where((c) => c.IsSceneObject != false && c.GetSceneOriginHandle() == scene.handle);
#else
var inSceneNetworkObjects = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsSceneObject != false && c.GetSceneOriginHandle() == scene.handle);
#endif

foreach (var sobj in inSceneNetworkObjects)
{
if (sobj.NetworkManagerOwner != networkManager)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -437,8 +437,13 @@ private void ClientNetworkManagerPostStart(NetworkManager networkManager)
m_PlayerNetworkObjects.Add(networkManager.LocalClientId, new Dictionary<ulong, NetworkObject>());
}

#if UNITY_2023_1_OR_NEWER
// Get all player instances for the current client NetworkManager instance
var clientPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == networkManager.LocalClientId).ToList();
#else
// Get all player instances for the current client NetworkManager instance
var clientPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == networkManager.LocalClientId).ToList();
#endif
// Add this player instance to each client player entry
foreach (var playerNetworkObject in clientPlayerClones)
{
Expand All @@ -452,9 +457,13 @@ private void ClientNetworkManagerPostStart(NetworkManager networkManager)
m_PlayerNetworkObjects[playerNetworkObject.NetworkManager.LocalClientId].Add(networkManager.LocalClientId, playerNetworkObject);
}
}

#if UNITY_2023_1_OR_NEWER
// For late joining clients, add the remaining (if any) cloned versions of each client's player
clientPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.NetworkManager == networkManager).ToList();
#else
// For late joining clients, add the remaining (if any) cloned versions of each client's player
clientPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.NetworkManager == networkManager).ToList();
#endif
foreach (var playerNetworkObject in clientPlayerClones)
{
if (!m_PlayerNetworkObjects[networkManager.LocalClientId].ContainsKey(playerNetworkObject.OwnerClientId))
Expand All @@ -474,7 +483,11 @@ protected void ClientNetworkManagerPostStartInit()
}
if (m_UseHost)
{
#if UNITY_2023_1_OR_NEWER
var clientSideServerPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
#else
var clientSideServerPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
#endif
foreach (var playerNetworkObject in clientSideServerPlayerClones)
{
// When the server is not the host this needs to be done
Expand Down Expand Up @@ -530,8 +543,13 @@ protected IEnumerator StartServerAndClients()

if (m_UseHost || m_ServerNetworkManager.IsHost)
{
#if UNITY_2023_1_OR_NEWER
// Add the server player instance to all m_ClientSidePlayerNetworkObjects entries
var serverPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
#else
// Add the server player instance to all m_ClientSidePlayerNetworkObjects entries
var serverPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
#endif
foreach (var playerNetworkObject in serverPlayerClones)
{
if (!m_PlayerNetworkObjects.ContainsKey(playerNetworkObject.NetworkManager.LocalClientId))
Expand Down Expand Up @@ -721,7 +739,11 @@ protected virtual bool CanDestroyNetworkObject(NetworkObject networkObject)
/// </summary>
protected void DestroySceneNetworkObjects()
{
#if UNITY_2023_1_OR_NEWER
var networkObjects = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
#else
var networkObjects = Object.FindObjectsOfType<NetworkObject>();
#endif
foreach (var networkObject in networkObjects)
{
// This can sometimes be null depending upon order of operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,18 @@ protected override void OnServerAndClientsCreated()

private EmptyComponent GetObjectForClient(ulong clientId)
{
foreach (var component in Object.FindObjectsOfType<EmptyComponent>())
#if UNITY_2023_1_OR_NEWER
var emptyComponents = Object.FindObjectsByType<EmptyComponent>(FindObjectsSortMode.InstanceID);
#else
var emptyComponents = Object.FindObjectsOfType<EmptyComponent>();
#endif
foreach (var component in emptyComponents)
{
if (component.IsSpawned && component.NetworkManager.LocalClientId == clientId)
{
return component;
}
}

return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,14 +271,19 @@ private IEnumerator SpawnClients(bool clearTestDeferredMessageManagerCallFlags =

private T GetComponentForClient<T>(ulong clientId) where T : NetworkBehaviour
{
foreach (var component in Object.FindObjectsOfType<T>())
#if UNITY_2023_1_OR_NEWER
var componentsToFind = Object.FindObjectsByType<T>(FindObjectsSortMode.InstanceID);
#else
var componentsToFind = Object.FindObjectsOfType<T>();
#endif

foreach (var component in componentsToFind)
{
if (component.IsSpawned && component.NetworkManager.LocalClientId == clientId)
{
return component;
}
}

return null;
}

Expand Down Expand Up @@ -751,7 +756,13 @@ bool HaveAllClientsSpawned()
{
var found1 = false;
var found2 = false;
foreach (var component in Object.FindObjectsOfType<DeferredMessageTestRpcComponent>())
#if UNITY_2023_1_OR_NEWER
var deferredMessageTestRpcComponents = Object.FindObjectsByType<DeferredMessageTestRpcComponent>(FindObjectsSortMode.None);
#else
var deferredMessageTestRpcComponents = Object.FindObjectsOfType<DeferredMessageTestRpcComponent>();
#endif

foreach (var component in deferredMessageTestRpcComponents)
{
if (component.IsSpawned && component.NetworkManager.LocalClientId == client.LocalClientId)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,15 @@ public IEnumerator MyFirstIntegationTest()
{
// Check the condition for this test and automatically handle varying processing
// environments and conditions
#if UNITY_2023_1_OR_NEWER
yield return WaitForConditionOrTimeOut(() =>
Object.FindObjectsByType<NetworkVisibilityComponent>(FindObjectsSortMode.None).Where(
(c) => c.IsSpawned).Count() == 2);
#else
yield return WaitForConditionOrTimeOut(() =>
Object.FindObjectsOfType<NetworkVisibilityComponent>().Where(
(c) => c.IsSpawned).Count() == 2);

#endif
Assert.False(s_GlobalTimeoutHelper.TimedOut, "Timed out waiting for instances " +
"to be detected!");
}
Expand Down Expand Up @@ -64,9 +69,15 @@ public IEnumerator MyFirstIntegationTest()
{
// Check the condition for this test and automatically handle varying processing
// environments and conditions
#if UNITY_2023_1_OR_NEWER
yield return WaitForConditionOrTimeOut(() =>
Object.FindObjectsByType<NetworkVisibilityComponent>(FindObjectsSortMode.None).Where(
(c) => c.IsSpawned).Count() == 2);
#else
yield return WaitForConditionOrTimeOut(() =>
Object.FindObjectsOfType<NetworkVisibilityComponent>().Where(
(c) => c.IsSpawned).Count() == 2);
#endif

Assert.False(s_GlobalTimeoutHelper.TimedOut, "Timed out waiting for instances " +
"to be detected!");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,12 @@ public IEnumerator WhenOwnershipIsChanged_OwnershipValuesUpdateCorrectly()
Assert.IsFalse(serverBehaviour.IsOwnedByServer);
Assert.AreEqual(m_ClientNetworkManagers[0].LocalClientId, serverBehaviour.OwnerClientId);

#if UNITY_2023_1_OR_NEWER
var clientObject = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID).Where((obj) => obj.NetworkManagerOwner == m_ClientNetworkManagers[0]).FirstOrDefault();
#else
var clientObject = Object.FindObjectsOfType<NetworkObject>().Where((obj) => obj.NetworkManagerOwner == m_ClientNetworkManagers[0]).FirstOrDefault();
#endif


Assert.IsNotNull(clientObject);
Assert.IsTrue(clientObject.IsOwner);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,12 @@ public void TearDown()
//Stop, shutdown, and destroy
NetworkManagerHelper.ShutdownNetworkManager();

#if UNITY_2023_1_OR_NEWER
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID).ToList();
#else
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>().ToList();
#endif

var networkObjectsList = networkObjects.Where(c => c.name.Contains(k_PrefabObjectName));
foreach (var networkObject in networkObjectsList)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,12 @@ protected override IEnumerator OnServerAndClientsConnected()
[UnityTest]
public IEnumerator HiddenObjectsTest()
{
#if UNITY_2023_1_OR_NEWER
yield return WaitForConditionOrTimeOut(() => Object.FindObjectsByType<NetworkVisibilityComponent>(FindObjectsSortMode.None).Where((c) => c.IsSpawned).Count() == 2);
#else
yield return WaitForConditionOrTimeOut(() => Object.FindObjectsOfType<NetworkVisibilityComponent>().Where((c) => c.IsSpawned).Count() == 2);
#endif

Assert.IsFalse(s_GlobalTimeoutHelper.TimedOut, "Timed out waiting for the visible object count to equal 2!");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ public class NetworkManagerMonitor : MonoBehaviour
// Start is called before the first frame update
private void Start()
{
#if UNITY_2023_1_OR_NEWER
var networkManagerInstances = FindObjectsByType<NetworkManager>(FindObjectsSortMode.InstanceID);
#else
var networkManagerInstances = FindObjectsOfType<NetworkManager>();
#endif
foreach (var instance in networkManagerInstances)
{
if (instance.IsListening)
Expand Down
13 changes: 13 additions & 0 deletions testproject/Assets/Tests/Runtime/AddressablesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,12 @@ private IEnumerator SpawnAndValidate(GameObject prefab, bool waitAndAddOnClient
serverObj.GetComponent<NetworkObject>().NetworkManagerOwner = m_ServerNetworkManager;
serverObj.GetComponent<NetworkObject>().Spawn();

#if UNITY_2023_1_OR_NEWER
var objs = Object.FindObjectsByType<AddressableTestScript>(FindObjectsSortMode.InstanceID);
#else
var objs = Object.FindObjectsOfType<AddressableTestScript>();
#endif

// Prefabs loaded by addressables actually don't show up in this search.
// Unlike other tests that make prefabs programmatically, those aren't added to the scene until they're instantiated
Assert.AreEqual(1, objs.Length);
Expand All @@ -80,7 +85,11 @@ private IEnumerator SpawnAndValidate(GameObject prefab, bool waitAndAddOnClient
{
// Since it's not added, after the CreateObjectMessage is received, it's not spawned yet
// Verify that to be the case as a precondition.
#if UNITY_2023_1_OR_NEWER
objs = Object.FindObjectsByType<AddressableTestScript>(FindObjectsSortMode.InstanceID);
#else
objs = Object.FindObjectsOfType<AddressableTestScript>();
#endif
Assert.AreEqual(1, objs.Length);
yield return new WaitUntil(() => Time.realtimeSinceStartup - startTime >= m_ClientNetworkManagers[0].NetworkConfig.SpawnTimeout - 0.25);
foreach (var client in m_ClientNetworkManagers)
Expand All @@ -89,7 +98,11 @@ private IEnumerator SpawnAndValidate(GameObject prefab, bool waitAndAddOnClient
}
}

#if UNITY_2023_1_OR_NEWER
objs = Object.FindObjectsByType<AddressableTestScript>(FindObjectsSortMode.InstanceID);
#else
objs = Object.FindObjectsOfType<AddressableTestScript>();
#endif
Assert.AreEqual(NumberOfClients + 1, objs.Length);
foreach (var obj in objs)
{
Expand Down
5 changes: 5 additions & 0 deletions testproject/Assets/Tests/Runtime/DontDestroyOnLoadTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,12 @@ public IEnumerator Teardown()
m_ServerNetworkManager = null;
m_ClientNetworkManagers = null;

#if UNITY_2023_1_OR_NEWER
var networkObjects = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.InstanceID);
#else
var networkObjects = Object.FindObjectsOfType<NetworkObject>();
#endif

foreach (var netObject in networkObjects)
{
Object.DestroyImmediate(netObject);
Expand Down
Loading