Skip to content

Commit be79191

Browse files
authored
Merge branch 'develop-2.0.0' into chore/obsolete-warnings
2 parents 3915309 + 5d6a3c7 commit be79191

7 files changed

Lines changed: 76 additions & 28 deletions

File tree

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ AssemblyInfo.cs @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1010
.github/ @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1111
.yamato/ @NoelStephensUnity @EmandM @Unity-Technologies/netcode-qa
1212
com.unity.netcode.gameobjects/Documentation*/ @jabbacakes
13-
com.unity.netcode.gameobjects/Runtime/Transports/UTP/ @Unity-Technologies/multiplayer-workflows
13+
com.unity.netcode.gameobjects/Runtime/Transports/UTP/ @simon-lemay-unity

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ Additional documentation and release notes are available at [Multiplayer Documen
1010

1111
### Added
1212

13+
- Added a new variant of `UnityTransport.GetDefaultPipelineConfigurations` that takes a reference to the created `NetworkDriver`. This will register all pipeline stages that `UnityTransport` requires, removing the need to manually register them in your own custom driver constructor. (#3980)
1314

1415
### Changed
1516

17+
- `NetworkMetricsPipelineStage` is now defined even when the multiplayer tools package is not installed, removing the need to guard its registration behind a version define when using a custom driver in `UnityTransport`. (#3980)
1618

1719
### Deprecated
1820

com.unity.netcode.gameobjects/Runtime/Transports/UTP/INetworkStreamDriverConstructor.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@ namespace Unity.Netcode.Transports.UTP
3636
/// var settings = transport.GetDefaultNetworkSettings();
3737
/// driver = NetworkDriver.Create(new IPCNetworkInterface(), settings);
3838
///
39-
/// driver.RegisterPipelineStage(new NetworkMetricsPipelineStage());
40-
///
4139
/// transport.GetDefaultPipelineConfigurations(
40+
/// ref driver,
4241
/// out var unreliableFragmentedPipelineStages,
4342
/// out var unreliableSequencedFragmentedPipelineStages,
4443
/// out var reliableSequencedPipelineStages);

com.unity.netcode.gameobjects/Runtime/Transports/UTP/NetworkMetricsPipelineStage.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#if MULTIPLAYER_TOOLS
2-
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
31
using AOT;
42
using Unity.Burst;
53
using Unity.Collections.LowLevel.Unsafe;
@@ -70,5 +68,3 @@ private static void InitializeConnection(byte* staticInstanceBuffer, int staticI
7068
}
7169
}
7270
}
73-
#endif
74-
#endif

com.unity.netcode.gameobjects/Runtime/Transports/UTP/UnityTransport.cs

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,23 @@ public void GetDefaultPipelineConfigurations(
657657
reliableSequencedPipelineStages = new(reliableSequenced, Allocator.Temp);
658658
}
659659

660+
/// <inheritdoc cref="GetDefaultPipelineConfigurations(out NativeArray{NetworkPipelineStageId}, out NativeArray{NetworkPipelineStageId}, out NativeArray{NetworkPipelineStageId})"/>
661+
/// <param name="driver">Driver for which the pipeline configurations are being retrieved.</param>
662+
public void GetDefaultPipelineConfigurations(
663+
ref NetworkDriver driver,
664+
out NativeArray<NetworkPipelineStageId> unreliableFragmentedPipelineStages,
665+
out NativeArray<NetworkPipelineStageId> unreliableSequencedFragmentedPipelineStages,
666+
out NativeArray<NetworkPipelineStageId> reliableSequencedPipelineStages)
667+
{
668+
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
669+
driver.RegisterPipelineStage(new NetworkMetricsPipelineStage());
670+
#endif
671+
GetDefaultPipelineConfigurations(
672+
out unreliableFragmentedPipelineStages,
673+
out unreliableSequencedFragmentedPipelineStages,
674+
out reliableSequencedPipelineStages);
675+
}
676+
660677
private NetworkPipeline SelectSendPipeline(NetworkDelivery delivery)
661678
{
662679
switch (delivery)
@@ -1860,11 +1877,8 @@ public void CreateDriver(
18601877
#endif
18611878
}
18621879

1863-
#if MULTIPLAYER_TOOLS_1_0_0_PRE_7
1864-
driver.RegisterPipelineStage(new NetworkMetricsPipelineStage());
1865-
#endif
1866-
18671880
GetDefaultPipelineConfigurations(
1881+
ref driver,
18681882
out var unreliableFragmentedPipelineStages,
18691883
out var unreliableSequencedFragmentedPipelineStages,
18701884
out var reliableSequencedPipelineStages);

com.unity.netcode.gameobjects/Tests/Runtime/Rpc/UniversalRpcTests.cs

Lines changed: 52 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
using System;
33
using System.Collections;
44
using System.Collections.Generic;
5-
using System.Diagnostics;
65
using System.Linq;
76
using System.Reflection;
7+
using System.Runtime.CompilerServices;
88
using NUnit.Framework;
99
using Unity.Collections;
1010
using Unity.Netcode.TestHelpers.Runtime;
@@ -29,22 +29,14 @@ internal class UniversalRpcNetworkBehaviour : NetworkBehaviour
2929
public ulong ReceivedFrom = ulong.MaxValue;
3030
public int ReceivedCount;
3131

32-
public void OnRpcReceived()
32+
public void OnRpcReceived([CallerMemberName] string methodName = "")
3333
{
34-
var st = new StackTrace();
35-
var sf = st.GetFrame(1);
36-
37-
var currentMethod = sf.GetMethod();
38-
Received = currentMethod.Name;
34+
Received = methodName;
3935
ReceivedCount++;
4036
}
41-
public void OnRpcReceivedWithParams(int a, bool b, float f, string s)
37+
public void OnRpcReceivedWithParams(int a, bool b, float f, string s, [CallerMemberName] string methodName = "")
4238
{
43-
var st = new StackTrace();
44-
var sf = st.GetFrame(1);
45-
46-
var currentMethod = sf.GetMethod();
47-
Received = currentMethod.Name;
39+
Received = methodName;
4840
ReceivedCount++;
4941
ReceivedParams = new Tuple<int, bool, float, string>(a, b, f, s);
5042
}
@@ -1031,7 +1023,8 @@ public void VerifySentToNotServerWithParams(ulong objectOwner, ulong sender, str
10311023

10321024
public void VerifySentToClientsAndHostWithParams(ulong objectOwner, ulong sender, string methodName, int i, bool b, float f, string s)
10331025
{
1034-
if (m_ServerNetworkManager.IsHost)
1026+
var authority = GetAuthorityNetworkManager();
1027+
if (authority.IsHost)
10351028
{
10361029
VerifySentToEveryoneWithParams(objectOwner, sender, methodName, i, b, f, s);
10371030
}
@@ -1319,11 +1312,33 @@ private void SendingNoOverrideWithParams(SendTo sendTo, ulong objectOwner, ulong
13191312
var sendMethodName = $"DefaultTo{sendTo}WithParamsRpc";
13201313
var verifyMethodName = $"VerifySentTo{sendTo}WithParams";
13211314

1315+
VerboseDebug("Get player object...");
13221316
var senderObject = GetPlayerObject(objectOwner, sender);
1317+
if (senderObject == null)
1318+
{
1319+
Debug.LogError($"Sender object is NULL!");
1320+
Assert.Fail();
1321+
return;
1322+
}
1323+
1324+
VerboseDebug($"Getting send method: {sendMethodName}");
13231325
var sendMethod = senderObject.GetType().GetMethod(sendMethodName);
1326+
if (sendMethod == null)
1327+
{
1328+
Debug.LogError($"Send method for {sendMethodName} is NULL!");
1329+
Assert.Fail();
1330+
return;
1331+
}
13241332
sendMethod.Invoke(senderObject, new object[] { i, b, f, s });
13251333

1334+
VerboseDebug($"Getting verify method: {verifyMethodName}");
13261335
var verifyMethod = GetType().GetMethod(verifyMethodName);
1336+
if (verifyMethod == null)
1337+
{
1338+
Debug.LogError($"Verify method for {verifyMethodName} is NULL!");
1339+
Assert.Fail();
1340+
return;
1341+
}
13271342
verifyMethod.Invoke(this, new object[] { objectOwner, sender, sendMethodName, i, b, f, s });
13281343
}
13291344

@@ -1344,11 +1359,33 @@ private void SendingNoOverrideWithParamsAndRpcParams(SendTo sendTo, ulong object
13441359
var sendMethodName = $"DefaultTo{sendTo}WithParamsAndRpcParamsRpc";
13451360
var verifyMethodName = $"VerifySentTo{sendTo}WithParams";
13461361

1362+
VerboseDebug("Get player object...");
13471363
var senderObject = GetPlayerObject(objectOwner, sender);
1364+
if (senderObject == null)
1365+
{
1366+
Debug.LogError($"Sender object is NULL!");
1367+
Assert.Fail();
1368+
return;
1369+
}
1370+
1371+
VerboseDebug($"Getting send method: {sendMethodName}");
13481372
var sendMethod = senderObject.GetType().GetMethod(sendMethodName);
1373+
if (sendMethod == null)
1374+
{
1375+
Debug.LogError($"Send method for {sendMethodName} is NULL!");
1376+
Assert.Fail();
1377+
return;
1378+
}
13491379
sendMethod.Invoke(senderObject, new object[] { i, b, f, s, new RpcParams() });
13501380

1381+
VerboseDebug($"Getting verify method: {verifyMethodName}");
13511382
var verifyMethod = GetType().GetMethod(verifyMethodName);
1383+
if (verifyMethod == null)
1384+
{
1385+
Debug.LogError($"Verify method for {verifyMethodName} is NULL!");
1386+
Assert.Fail();
1387+
return;
1388+
}
13521389
verifyMethod.Invoke(this, new object[] { objectOwner, sender, sendMethodName, i, b, f, s });
13531390
}
13541391

@@ -1383,7 +1420,7 @@ private void RunTestTypeB(TestTypes testType)
13831420
{
13841421
foreach (var defaultSendTo in sendToValues)
13851422
{
1386-
UnityEngine.Debug.Log($"[{testType}][{defaultSendTo}]");
1423+
VerboseDebug($"[{testType}][{defaultSendTo}]");
13871424
foreach (var overrideSendTo in sendToValues)
13881425
{
13891426
for (ulong objectOwner = 0; objectOwner <= numberOfClientsULong; objectOwner++)

com.unity.netcode.gameobjects/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "com.unity.netcode.gameobjects",
33
"displayName": "Netcode for GameObjects",
44
"description": "Netcode for GameObjects is a high-level netcode SDK that provides networking capabilities to GameObject/MonoBehaviour workflows within Unity and sits on top of underlying transport layer.",
5-
"version": "2.11.3",
5+
"version": "2.12.0",
66
"unity": "6000.0",
77
"dependencies": {
88
"com.unity.nuget.mono-cecil": "1.11.4",
@@ -15,4 +15,4 @@
1515
"path": "Samples~/Bootstrap"
1616
}
1717
]
18-
}
18+
}

0 commit comments

Comments
 (0)