Skip to content

Commit 650e674

Browse files
authored
Merge branch 'develop-2.0.0' into chore/simplify-accessors-network-transform
2 parents 016b1f9 + c242ca7 commit 650e674

File tree

2 files changed

+30
-34
lines changed

2 files changed

+30
-34
lines changed

com.unity.netcode.gameobjects/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Additional documentation and release notes are available at [Multiplayer Documen
1313

1414
### Changed
1515
- Improve performance of `NetworkTransform`. (#3907)
16+
- Improve performance of `NetworkBehaviour`. (#3915)
1617
- Improve performance of `NetworkRigidbodyBase`. (#3906)
1718
- Improve performance of `NetworkAnimator`. (#3905)
1819

com.unity.netcode.gameobjects/Runtime/Core/NetworkBehaviour.cs

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ internal FastBufferWriter __beginSendServerRpc(uint rpcMethodId, ServerRpcParams
9090
internal void __endSendServerRpc(ref FastBufferWriter bufferWriter, uint rpcMethodId, ServerRpcParams serverRpcParams, RpcDelivery rpcDelivery)
9191
#pragma warning restore IDE1006 // restore naming rule violation check
9292
{
93-
var networkManager = m_NetworkManager;
9493
var serverRpcMessage = new ServerRpcMessage
9594
{
9695
Metadata = new RpcMetadata
@@ -110,7 +109,7 @@ internal void __endSendServerRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
110109
networkDelivery = MessageDeliveryType<ServerRpcMessage>.DefaultDelivery;
111110
break;
112111
case RpcDelivery.Unreliable:
113-
if (bufferWriter.Length > networkManager.MessageManager.NonFragmentedMessageMaxSize)
112+
if (bufferWriter.Length > m_NetworkManager.MessageManager.NonFragmentedMessageMaxSize)
114113
{
115114
throw new OverflowException("RPC parameters are too large for unreliable delivery.");
116115
}
@@ -127,8 +126,8 @@ internal void __endSendServerRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
127126
var context = new NetworkContext
128127
{
129128
SenderId = NetworkManager.ServerClientId,
130-
Timestamp = networkManager.RealTimeProvider.RealTimeSinceStartup,
131-
SystemOwner = networkManager,
129+
Timestamp = m_NetworkManager.RealTimeProvider.RealTimeSinceStartup,
130+
SystemOwner = m_NetworkManager,
132131
// header information isn't valid since it's not a real message.
133132
// RpcMessage doesn't access this stuff so it's just left empty.
134133
Header = new NetworkMessageHeader(),
@@ -141,7 +140,7 @@ internal void __endSendServerRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
141140
}
142141
else
143142
{
144-
rpcWriteSize = networkManager.ConnectionManager.SendMessage(ref serverRpcMessage, networkDelivery, NetworkManager.ServerClientId);
143+
rpcWriteSize = m_NetworkManager.ConnectionManager.SendMessage(ref serverRpcMessage, networkDelivery, NetworkManager.ServerClientId);
145144
}
146145

147146
bufferWriter.Dispose();
@@ -169,7 +168,6 @@ internal FastBufferWriter __beginSendClientRpc(uint rpcMethodId, ClientRpcParams
169168
internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMethodId, ClientRpcParams clientRpcParams, RpcDelivery rpcDelivery)
170169
#pragma warning restore IDE1006 // restore naming rule violation check
171170
{
172-
var networkManager = m_NetworkManager;
173171
var clientRpcMessage = new ClientRpcMessage
174172
{
175173
Metadata = new RpcMetadata
@@ -189,7 +187,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
189187
networkDelivery = MessageDeliveryType<ClientRpcMessage>.DefaultDelivery;
190188
break;
191189
case RpcDelivery.Unreliable:
192-
if (bufferWriter.Length > networkManager.MessageManager.NonFragmentedMessageMaxSize)
190+
if (bufferWriter.Length > m_NetworkManager.MessageManager.NonFragmentedMessageMaxSize)
193191
{
194192
throw new OverflowException("RPC parameters are too large for unreliable delivery.");
195193
}
@@ -212,7 +210,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
212210
continue;
213211
}
214212
// Check to make sure we are sending to only observers, if not log an error.
215-
if (networkManager.LogLevel >= LogLevel.Error && !m_NetworkObject.Observers.Contains(targetClientId))
213+
if (m_NetworkManager.LogLevel >= LogLevel.Error && !m_NetworkObject.Observers.Contains(targetClientId))
216214
{
217215
NetworkLog.LogError(GenerateObserverErrorMessage(clientRpcParams, targetClientId));
218216
}
@@ -229,25 +227,25 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
229227
continue;
230228
}
231229
// Check to make sure we are sending to only observers, if not log an error.
232-
if (networkManager.LogLevel >= LogLevel.Error && !m_NetworkObject.Observers.Contains(targetClientId))
230+
if (m_NetworkManager.LogLevel >= LogLevel.Error && !m_NetworkObject.Observers.Contains(targetClientId))
233231
{
234232
NetworkLog.LogError(GenerateObserverErrorMessage(clientRpcParams, targetClientId));
235233
}
236234
}
237-
rpcWriteSize = networkManager.ConnectionManager.SendMessage(ref clientRpcMessage, networkDelivery, clientRpcParams.Send.TargetClientIdsNativeArray.Value);
235+
rpcWriteSize = m_NetworkManager.ConnectionManager.SendMessage(ref clientRpcMessage, networkDelivery, clientRpcParams.Send.TargetClientIdsNativeArray.Value);
238236
}
239237
else
240238
{
241239
var observerEnumerator = m_NetworkObject.Observers.GetEnumerator();
242240
while (observerEnumerator.MoveNext())
243241
{
244242
// Skip over the host
245-
if (IsHost && observerEnumerator.Current == networkManager.LocalClientId)
243+
if (IsHost && observerEnumerator.Current == m_NetworkManager.LocalClientId)
246244
{
247245
shouldInvokeLocally = true;
248246
continue;
249247
}
250-
rpcWriteSize = networkManager.ConnectionManager.SendMessage(ref clientRpcMessage, networkDelivery, observerEnumerator.Current);
248+
rpcWriteSize = m_NetworkManager.ConnectionManager.SendMessage(ref clientRpcMessage, networkDelivery, observerEnumerator.Current);
251249
}
252250
}
253251

@@ -258,8 +256,8 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
258256
var context = new NetworkContext
259257
{
260258
SenderId = NetworkManager.ServerClientId,
261-
Timestamp = networkManager.RealTimeProvider.RealTimeSinceStartup,
262-
SystemOwner = networkManager,
259+
Timestamp = m_NetworkManager.RealTimeProvider.RealTimeSinceStartup,
260+
SystemOwner = m_NetworkManager,
263261
// header information isn't valid since it's not a real message.
264262
// RpcMessage doesn't access this stuff so it's just left empty.
265263
Header = new NetworkMessageHeader(),
@@ -282,7 +280,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
282280
{
283281
foreach (var targetClientId in clientRpcParams.Send.TargetClientIds)
284282
{
285-
networkManager.NetworkMetrics.TrackRpcSent(
283+
m_NetworkManager.NetworkMetrics.TrackRpcSent(
286284
targetClientId,
287285
m_NetworkObject,
288286
rpcMethodName,
@@ -294,7 +292,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
294292
{
295293
foreach (var targetClientId in clientRpcParams.Send.TargetClientIdsNativeArray)
296294
{
297-
networkManager.NetworkMetrics.TrackRpcSent(
295+
m_NetworkManager.NetworkMetrics.TrackRpcSent(
298296
targetClientId,
299297
m_NetworkObject,
300298
rpcMethodName,
@@ -307,7 +305,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
307305
var observerEnumerator = m_NetworkObject.Observers.GetEnumerator();
308306
while (observerEnumerator.MoveNext())
309307
{
310-
networkManager.NetworkMetrics.TrackRpcSent(
308+
m_NetworkManager.NetworkMetrics.TrackRpcSent(
311309
observerEnumerator.Current,
312310
m_NetworkObject,
313311
rpcMethodName,
@@ -325,7 +323,7 @@ internal void __endSendClientRpc(ref FastBufferWriter bufferWriter, uint rpcMeth
325323
internal FastBufferWriter __beginSendRpc(uint rpcMethodId, RpcParams rpcParams, RpcAttribute.RpcAttributeParams attributeParams, SendTo defaultTarget, RpcDelivery rpcDelivery)
326324
#pragma warning restore IDE1006 // restore naming rule violation check
327325
{
328-
if (m_NetworkObject == null && !IsSpawned)
326+
if (!IsSpawned)
329327
{
330328
throw new RpcException("The NetworkBehaviour must be spawned before calling this method.");
331329
}
@@ -652,27 +650,24 @@ protected NetworkBehaviour GetNetworkBehaviour(ushort behaviourId)
652650
/// </summary>
653651
internal void UpdateNetworkProperties()
654652
{
655-
var networkObject = m_NetworkObject;
656-
var networkManager = m_NetworkManager;
657-
658653
// Set identification related properties
659-
NetworkObjectId = networkObject.NetworkObjectId;
660-
IsLocalPlayer = networkObject.IsLocalPlayer;
654+
NetworkObjectId = m_NetworkObject.NetworkObjectId;
655+
IsLocalPlayer = m_NetworkObject.IsLocalPlayer;
661656

662657
// Set ownership related properties
663-
IsOwnedByServer = networkObject.IsOwnedByServer;
664-
IsOwner = networkObject.IsOwner;
665-
OwnerClientId = networkObject.OwnerClientId;
658+
IsOwnedByServer = m_NetworkObject.IsOwnedByServer;
659+
IsOwner = m_NetworkObject.IsOwner;
660+
OwnerClientId = m_NetworkObject.OwnerClientId;
666661

667662
// Set NetworkManager dependent properties
668-
if (networkManager != null)
669-
{
670-
IsHost = networkManager.IsListening && networkManager.IsHost;
671-
IsClient = networkManager.IsListening && networkManager.IsClient;
672-
IsServer = networkManager.IsListening && networkManager.IsServer;
673-
IsSessionOwner = networkManager.IsListening && networkManager.LocalClient.IsSessionOwner;
674-
HasAuthority = networkObject.HasAuthority;
675-
ServerIsHost = networkManager.IsListening && networkManager.ServerIsHost;
663+
if (m_NetworkManager != null)
664+
{
665+
IsHost = m_NetworkManager.IsListening && m_NetworkManager.IsHost;
666+
IsClient = m_NetworkManager.IsListening && m_NetworkManager.IsClient;
667+
IsServer = m_NetworkManager.IsListening && m_NetworkManager.IsServer;
668+
IsSessionOwner = m_NetworkManager.IsListening && m_NetworkManager.LocalClient.IsSessionOwner;
669+
HasAuthority = m_NetworkObject.HasAuthority;
670+
ServerIsHost = m_NetworkManager.IsListening && m_NetworkManager.ServerIsHost;
676671
}
677672
}
678673

0 commit comments

Comments
 (0)