From 348783f7ee36bda39067d15ebdc499cd1f294595 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Tue, 24 Aug 2021 19:17:13 -0700 Subject: [PATCH 1/6] fulfilling interface for tools to find network objects from an id --- .../Runtime/Core/NetworkManager.cs | 6 +++++ .../Runtime/Metrics/NetworkObjectProvider.cs | 25 +++++++++++++++++++ .../Metrics/NetworkObjectProvider.cs.meta | 3 +++ .../Runtime/com.unity.netcode.runtime.asmdef | 3 ++- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs create mode 100644 com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs.meta diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs index 953f1c13f1..b921cfc2c8 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using System.Linq; +using Unity.Multiplayer.Tools; using UnityEngine; #if UNITY_EDITOR using UnityEditor; @@ -396,6 +397,11 @@ private void Initialize(bool server) #endif } + NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters + { + NetworkObjectProvider = new NetworkObjectProvider(this) + }); + if (NetworkConfig.NetworkTransport == null) { if (NetworkLog.CurrentLogLevel <= LogLevel.Error) diff --git a/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs new file mode 100644 index 0000000000..5e983d255a --- /dev/null +++ b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs @@ -0,0 +1,25 @@ +using Unity.Multiplayer.Tools; +using UnityEngine; + +namespace Unity.Netcode +{ + class NetworkObjectProvider : INetworkObjectProvider + { + private readonly NetworkManager m_NetworkManager; + + public NetworkObjectProvider(NetworkManager networkManager) + { + m_NetworkManager = networkManager; + } + + public Object GetNetworkObject(ulong networkObjectId) + { + if(m_NetworkManager.SpawnManager.SpawnedObjects.TryGetValue(networkObjectId, out NetworkObject value)) + { + return value; + } + + return null; + } + } +} diff --git a/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs.meta b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs.meta new file mode 100644 index 0000000000..38ebecf7a0 --- /dev/null +++ b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 685ceb9b27db429dba04833cd6be49d8 +timeCreated: 1629857362 \ No newline at end of file diff --git a/com.unity.netcode.gameobjects/Runtime/com.unity.netcode.runtime.asmdef b/com.unity.netcode.gameobjects/Runtime/com.unity.netcode.runtime.asmdef index 0edf4257ff..3798f71cb3 100644 --- a/com.unity.netcode.gameobjects/Runtime/com.unity.netcode.runtime.asmdef +++ b/com.unity.netcode.gameobjects/Runtime/com.unity.netcode.runtime.asmdef @@ -4,7 +4,8 @@ "references": [ "Unity.Multiplayer.MetricTypes", "Unity.Multiplayer.NetStats", - "Unity.Multiplayer.NetStatsReporting" + "Unity.Multiplayer.NetStatsReporting", + "Unity.Multiplayer.NetworkSolutionInterface" ], "includePlatforms": [], "excludePlatforms": [], From b725acd51f9fbf3dffa2230019a6aa4ede4915d0 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Wed, 25 Aug 2021 15:08:01 -0700 Subject: [PATCH 2/6] updated tools reference in testproject --- testproject-tools-integration/Packages/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testproject-tools-integration/Packages/manifest.json b/testproject-tools-integration/Packages/manifest.json index df82f39aee..641b70fa7a 100644 --- a/testproject-tools-integration/Packages/manifest.json +++ b/testproject-tools-integration/Packages/manifest.json @@ -3,7 +3,7 @@ "dependencies": { "com.unity.ide.rider": "3.0.7", "com.unity.netcode.gameobjects": "file:../../com.unity.netcode.gameobjects", - "com.unity.multiplayer.tools": "0.0.1-preview.3", + "com.unity.multiplayer.tools": "0.0.1-preview.4", "com.unity.multiplayer.transport.utp": "file:../../com.unity.multiplayer.transport.utp", "com.unity.test-framework": "1.1.26", "com.unity.modules.ai": "1.0.0", From f79cb6ad257ef0b7291ead32e3d961ae7aa83366 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Wed, 25 Aug 2021 15:08:18 -0700 Subject: [PATCH 3/6] fixed missing #if around the tools call --- com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs index b9ad37ec08..dc0fc80500 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs @@ -397,10 +397,12 @@ private void Initialize(bool server) #endif } +#if MULTIPLAYER_TOOLS NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters { NetworkObjectProvider = new NetworkObjectProvider(this) }); +#endif if (NetworkConfig.NetworkTransport == null) { From 1fd1714bacded32e4ca69b4a98cff4a668577c75 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Wed, 25 Aug 2021 16:20:35 -0700 Subject: [PATCH 4/6] Fixed another compiler incompat w/ tools package --- .../Runtime/Metrics/NetworkObjectProvider.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs index 5e983d255a..7bda94e6cf 100644 --- a/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs +++ b/com.unity.netcode.gameobjects/Runtime/Metrics/NetworkObjectProvider.cs @@ -1,4 +1,5 @@ -using Unity.Multiplayer.Tools; +#if MULTIPLAYER_TOOLS +using Unity.Multiplayer.Tools; using UnityEngine; namespace Unity.Netcode @@ -23,3 +24,4 @@ public Object GetNetworkObject(ulong networkObjectId) } } } +#endif From 0c05fc040076acd2f90d2b98c7de997d426302b3 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Wed, 25 Aug 2021 16:46:15 -0700 Subject: [PATCH 5/6] Moved using out of the topline directives --- com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs index dc0fc80500..2cd913d8e2 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs @@ -2,7 +2,6 @@ using System.Collections; using System.Collections.Generic; using System.Linq; -using Unity.Multiplayer.Tools; using UnityEngine; #if UNITY_EDITOR using UnityEditor; @@ -398,7 +397,7 @@ private void Initialize(bool server) } #if MULTIPLAYER_TOOLS - NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters + Unity.Multiplayer.Tools.NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters { NetworkObjectProvider = new NetworkObjectProvider(this) }); From 1c0168ef71c0fe8c4b4d864f48a3400dcd7c0965 Mon Sep 17 00:00:00 2001 From: Beck Sebenius Date: Wed, 25 Aug 2021 16:47:57 -0700 Subject: [PATCH 6/6] adjusted fix from previous commit --- com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs index 2cd913d8e2..be4ede592d 100644 --- a/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs +++ b/com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs @@ -6,6 +6,9 @@ #if UNITY_EDITOR using UnityEditor; #endif +#if MULTIPLAYER_TOOLS +using Unity.Multiplayer.Tools; +#endif using Unity.Profiling; using UnityEngine.SceneManagement; using Debug = UnityEngine.Debug; @@ -397,7 +400,7 @@ private void Initialize(bool server) } #if MULTIPLAYER_TOOLS - Unity.Multiplayer.Tools.NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters + NetworkSolutionInterface.SetInterface(new NetworkSolutionInterfaceParameters { NetworkObjectProvider = new NetworkObjectProvider(this) });