Skip to content

Commit 215b124

Browse files
update
Fixes the rest of the assemblies that had scripts that used FindObjectsOfType
1 parent 993c0f8 commit 215b124

25 files changed

Lines changed: 263 additions & 30 deletions

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,11 @@ private static void ScenesInBuildActiveSceneCheck()
6565
var scenesList = EditorBuildSettings.scenes.ToList();
6666
var activeScene = SceneManager.GetActiveScene();
6767
var isSceneInBuildSettings = scenesList.Count((c) => c.path == activeScene.path) == 1;
68+
#if USE_FINDOBJECTSBYTYPE
69+
var networkManager = Object.FindFirstObjectByType<NetworkManager>();
70+
#else
6871
var networkManager = Object.FindObjectOfType<NetworkManager>();
72+
#endif
6973
if (!isSceneInBuildSettings && networkManager != null)
7074
{
7175
if (networkManager.NetworkConfig != null && networkManager.NetworkConfig.EnableSceneManagement)

com.unity.netcode.gameobjects/Editor/com.unity.netcode.editor.asmdef

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
"includePlatforms": [
99
"Editor"
1010
],
11+
"excludePlatforms": [],
12+
"allowUnsafeCode": false,
13+
"overrideReferences": false,
14+
"precompiledReferences": [],
15+
"autoReferenced": true,
16+
"defineConstraints": [],
1117
"versionDefines": [
1218
{
1319
"name": "com.unity.multiplayer.tools",
@@ -33,6 +39,12 @@
3339
"name": "com.unity.modules.physics2d",
3440
"expression": "",
3541
"define": "COM_UNITY_MODULES_PHYSICS2D"
42+
},
43+
{
44+
"name": "Unity",
45+
"expression": "2023.1.0a21",
46+
"define": "USE_FINDOBJECTSBYTYPE"
3647
}
37-
]
38-
}
48+
],
49+
"noEngineReferences": false
50+
}

com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2018,7 +2018,11 @@ internal void PopulateScenePlacedObjects(Scene sceneToFilterBy, bool clearSceneP
20182018
ScenePlacedObjects.Clear();
20192019
}
20202020

2021+
#if USE_FINDOBJECTSBYTYPE
2022+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None);
2023+
#else
20212024
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
2025+
#endif
20222026

20232027
// Just add every NetworkObject found that isn't already in the list
20242028
// With additive scenes, we can have multiple in-scene placed NetworkObjects with the same GlobalObjectIdHash value

com.unity.netcode.gameobjects/Runtime/SceneManagement/SceneEventData.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,12 @@ internal void AddDespawnedInSceneNetworkObjects()
269269
{
270270
m_DespawnedInSceneObjectsSync.Clear();
271271
// Find all active and non-active in-scene placed NetworkObjects
272+
#if USE_FINDOBJECTSBYTYPE
273+
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsInactive.Include, UnityEngine.FindObjectsSortMode.None).Where((c) => c.NetworkManager == m_NetworkManager);
274+
#else
272275
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>(includeInactive: true).Where((c) => c.NetworkManager == m_NetworkManager);
276+
277+
#endif
273278
foreach (var sobj in inSceneNetworkObjects)
274279
{
275280
if (sobj.IsSceneObject.HasValue && sobj.IsSceneObject.Value && !sobj.IsSpawned)
@@ -657,7 +662,11 @@ internal void ReadClientReSynchronizationData(FastBufferReader reader)
657662

658663
if (networkObjectsToRemove.Length > 0)
659664
{
665+
#if USE_FINDOBJECTSBYTYPE
666+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsSortMode.None);
667+
#else
660668
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
669+
#endif
661670
var networkObjectIdToNetworkObject = new Dictionary<ulong, NetworkObject>();
662671
foreach (var networkObject in networkObjects)
663672
{
@@ -785,8 +794,14 @@ private void DeserializeDespawnedInScenePlacedNetworkObjects()
785794
var objectRelativeScene = m_NetworkManager.SceneManager.ScenesLoaded[localSceneHandle];
786795

787796
// Find all active and non-active in-scene placed NetworkObjects
797+
#if USE_FINDOBJECTSBYTYPE
798+
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(UnityEngine.FindObjectsInactive.Include, UnityEngine.FindObjectsSortMode.None).Where((c) =>
799+
c.GetSceneOriginHandle() == localSceneHandle && (c.IsSceneObject != false)).ToList();
800+
#else
788801
var inSceneNetworkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>(includeInactive: true).Where((c) =>
789802
c.GetSceneOriginHandle() == localSceneHandle && (c.IsSceneObject != false)).ToList();
803+
#endif
804+
790805

791806
foreach (var inSceneObject in inSceneNetworkObjects)
792807
{

com.unity.netcode.gameobjects/Runtime/Spawning/NetworkSpawnManager.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,11 @@ internal void DespawnObject(NetworkObject networkObject, bool destroyObject = fa
658658
// Makes scene objects ready to be reused
659659
internal void ServerResetShudownStateForSceneObjects()
660660
{
661+
#if USE_FINDOBJECTSBYTYPE
662+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsSceneObject != null && c.IsSceneObject == true);
663+
#else
661664
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsSceneObject != null && c.IsSceneObject == true);
665+
#endif
662666
foreach (var sobj in networkObjects)
663667
{
664668
sobj.IsSpawned = false;
@@ -689,7 +693,11 @@ internal void ServerDestroySpawnedSceneObjects()
689693

690694
internal void DespawnAndDestroyNetworkObjects()
691695
{
696+
#if USE_FINDOBJECTSBYTYPE
697+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None);
698+
#else
692699
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
700+
#endif
693701

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

720728
internal void DestroySceneObjects()
721729
{
730+
#if USE_FINDOBJECTSBYTYPE
731+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None);
732+
#else
722733
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
734+
#endif
723735

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

747759
internal void ServerSpawnSceneObjectsOnStartSweep()
748760
{
761+
#if USE_FINDOBJECTSBYTYPE
762+
var networkObjects = UnityEngine.Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None);
763+
#else
749764
var networkObjects = UnityEngine.Object.FindObjectsOfType<NetworkObject>();
765+
#endif
750766
var networkObjectsToSpawn = new List<NetworkObject>();
751767

752768
for (int i = 0; i < networkObjects.Length; i++)

com.unity.netcode.gameobjects/Runtime/com.unity.netcode.runtime.asmdef

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
"Unity.Collections",
1515
"Unity.Burst"
1616
],
17+
"includePlatforms": [],
18+
"excludePlatforms": [],
1719
"allowUnsafeCode": true,
20+
"overrideReferences": false,
21+
"precompiledReferences": [],
22+
"autoReferenced": true,
23+
"defineConstraints": [],
1824
"versionDefines": [
1925
{
2026
"name": "com.unity.multiplayer.tools",
@@ -35,6 +41,12 @@
3541
"name": "com.unity.transport",
3642
"expression": "2.0.0-exp",
3743
"define": "UTP_TRANSPORT_2_0_ABOVE"
44+
},
45+
{
46+
"name": "Unity",
47+
"expression": "2023.1.0a21",
48+
"define": "USE_FINDOBJECTSBYTYPE"
3849
}
39-
]
40-
}
50+
],
51+
"noEngineReferences": false
52+
}

com.unity.netcode.gameobjects/TestHelpers/Runtime/IntegrationTestSceneHandler.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,12 @@ private static void SceneManager_sceneLoaded(Scene scene, LoadSceneMode loadScen
147147
private static void ProcessInSceneObjects(Scene scene, NetworkManager networkManager)
148148
{
149149
// Get all in-scene placed NeworkObjects that were instantiated when this scene loaded
150+
#if USE_FINDOBJECTSBYTYPE
151+
var inSceneNetworkObjects = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsSceneObject != false && c.GetSceneOriginHandle() == scene.handle);
152+
#else
150153
var inSceneNetworkObjects = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsSceneObject != false && c.GetSceneOriginHandle() == scene.handle);
154+
#endif
155+
151156
foreach (var sobj in inSceneNetworkObjects)
152157
{
153158
if (sobj.NetworkManagerOwner != networkManager)

com.unity.netcode.gameobjects/TestHelpers/Runtime/NetcodeIntegrationTest.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -437,8 +437,13 @@ private void ClientNetworkManagerPostStart(NetworkManager networkManager)
437437
m_PlayerNetworkObjects.Add(networkManager.LocalClientId, new Dictionary<ulong, NetworkObject>());
438438
}
439439

440+
#if USE_FINDOBJECTSBYTYPE
441+
// Get all player instances for the current client NetworkManager instance
442+
var clientPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == networkManager.LocalClientId).ToList();
443+
#else
440444
// Get all player instances for the current client NetworkManager instance
441445
var clientPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == networkManager.LocalClientId).ToList();
446+
#endif
442447
// Add this player instance to each client player entry
443448
foreach (var playerNetworkObject in clientPlayerClones)
444449
{
@@ -452,9 +457,13 @@ private void ClientNetworkManagerPostStart(NetworkManager networkManager)
452457
m_PlayerNetworkObjects[playerNetworkObject.NetworkManager.LocalClientId].Add(networkManager.LocalClientId, playerNetworkObject);
453458
}
454459
}
455-
456-
// For late joining clients, add the remaining (if any) cloned versions of each client's player
460+
#if USE_FINDOBJECTSBYTYPE
461+
// Get all player instances for the current client NetworkManager instance
462+
clientPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.NetworkManager == networkManager).ToList();
463+
#else
464+
// Get all player instances for the current client NetworkManager instance
457465
clientPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.NetworkManager == networkManager).ToList();
466+
#endif
458467
foreach (var playerNetworkObject in clientPlayerClones)
459468
{
460469
if (!m_PlayerNetworkObjects[networkManager.LocalClientId].ContainsKey(playerNetworkObject.OwnerClientId))
@@ -474,7 +483,12 @@ protected void ClientNetworkManagerPostStartInit()
474483
}
475484
if (m_UseHost)
476485
{
486+
#if USE_FINDOBJECTSBYTYPE
487+
var clientSideServerPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
488+
#else
477489
var clientSideServerPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
490+
#endif
491+
478492
foreach (var playerNetworkObject in clientSideServerPlayerClones)
479493
{
480494
// When the server is not the host this needs to be done
@@ -530,8 +544,13 @@ protected IEnumerator StartServerAndClients()
530544

531545
if (m_UseHost || m_ServerNetworkManager.IsHost)
532546
{
547+
#if USE_FINDOBJECTSBYTYPE
548+
// Add the server player instance to all m_ClientSidePlayerNetworkObjects entries
549+
var serverPlayerClones = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None).Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
550+
#else
533551
// Add the server player instance to all m_ClientSidePlayerNetworkObjects entries
534552
var serverPlayerClones = Object.FindObjectsOfType<NetworkObject>().Where((c) => c.IsPlayerObject && c.OwnerClientId == m_ServerNetworkManager.LocalClientId);
553+
#endif
535554
foreach (var playerNetworkObject in serverPlayerClones)
536555
{
537556
if (!m_PlayerNetworkObjects.ContainsKey(playerNetworkObject.NetworkManager.LocalClientId))
@@ -721,7 +740,11 @@ protected virtual bool CanDestroyNetworkObject(NetworkObject networkObject)
721740
/// </summary>
722741
protected void DestroySceneNetworkObjects()
723742
{
743+
#if USE_FINDOBJECTSBYTYPE
744+
var networkObjects = Object.FindObjectsByType<NetworkObject>(FindObjectsSortMode.None);
745+
#else
724746
var networkObjects = Object.FindObjectsOfType<NetworkObject>();
747+
#endif
725748
foreach (var networkObject in networkObjects)
726749
{
727750
// This can sometimes be null depending upon order of operations

com.unity.netcode.gameobjects/TestHelpers/Runtime/com.unity.netcode.testhelpers.runtime.asmdef

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,20 @@
66
"Unity.Multiplayer.MetricTypes",
77
"Unity.Multiplayer.NetStats",
88
"Unity.Multiplayer.Tools.MetricTypes",
9-
"Unity.Multiplayer.Tools.NetStats"
9+
"Unity.Multiplayer.Tools.NetStats",
10+
"UnityEngine.TestRunner",
11+
"UnityEditor.TestRunner"
1012
],
11-
"optionalUnityReferences": [
12-
"TestAssemblies"
13+
"includePlatforms": [],
14+
"excludePlatforms": [],
15+
"allowUnsafeCode": false,
16+
"overrideReferences": true,
17+
"precompiledReferences": [
18+
"nunit.framework.dll"
1319
],
20+
"autoReferenced": false,
1421
"defineConstraints": [
22+
"UNITY_INCLUDE_TESTS",
1523
"UNITY_INCLUDE_TESTS"
1624
],
1725
"versionDefines": [
@@ -24,6 +32,12 @@
2432
"name": "com.unity.multiplayer.tools",
2533
"expression": "1.0.0-pre.7",
2634
"define": "MULTIPLAYER_TOOLS_1_0_0_PRE_7"
35+
},
36+
{
37+
"name": "Unity",
38+
"expression": "2023.1.0a21",
39+
"define": "USE_FINDOBJECTSBYTYPE"
2740
}
28-
]
41+
],
42+
"noEngineReferences": false
2943
}

com.unity.netcode.gameobjects/Tests/Runtime/AddNetworkPrefabTests.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ protected override void OnServerAndClientsCreated()
4545

4646
private EmptyComponent GetObjectForClient(ulong clientId)
4747
{
48-
foreach (var component in Object.FindObjectsOfType<EmptyComponent>())
48+
#if USE_FINDOBJECTSBYTYPE
49+
var emptyComponents = Object.FindObjectsByType<EmptyComponent>(FindObjectsSortMode.None);
50+
#else
51+
var emptyComponents = Object.FindObjectsOfType<EmptyComponent>();
52+
#endif
53+
foreach (var component in emptyComponents)
4954
{
5055
if (component.IsSpawned && component.NetworkManager.LocalClientId == clientId)
5156
{

0 commit comments

Comments
 (0)