Skip to content

Commit 3189abf

Browse files
fix
Adding target client that is being sent to.
1 parent ce720f2 commit 3189abf

File tree

5 files changed

+11
-7
lines changed

5 files changed

+11
-7
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,8 +1040,7 @@ internal void TrackRpcMetricsSend(ref ServerRpcMessage message, uint rpcMethodId
10401040
}
10411041
}
10421042

1043-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1044-
internal void TrackRpcMetricsSend(ref RpcMessage message, int length)
1043+
internal void TrackRpcMetricsSend(ulong clientId, ref RpcMessage message, int length)
10451044
{
10461045
var type = GetType();
10471046
if (!ValidateRpcMessageMetrics(type))

com.unity.netcode.gameobjects/Runtime/Messaging/RpcTargets/BaseRpcTarget.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ private protected void SendMessageToClient(NetworkBehaviour behaviour, ulong cli
5454
{
5555
var size = behaviour.NetworkManager.MessageManager.SendMessage(ref message, delivery, clientId);
5656
#if MULTIPLAYER_TOOLS && (DEVELOPMENT_BUILD || UNITY_EDITOR || UNITY_MP_TOOLS_NET_STATS_MONITOR_ENABLED_IN_RELEASE)
57-
behaviour.TrackRpcMetricsSend(ref message, size);
57+
// Send to a specific client
58+
behaviour.TrackRpcMetricsSend(clientId, ref message, size);
5859
#endif
5960
}
6061
}

com.unity.netcode.gameobjects/Runtime/Messaging/RpcTargets/LocalSendRpcTarget.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ internal override void Send(NetworkBehaviour behaviour, ref RpcMessage message,
4747
length = tempBuffer.Length;
4848
}
4949
#if MULTIPLAYER_TOOLS && (DEVELOPMENT_BUILD || UNITY_EDITOR || UNITY_MP_TOOLS_NET_STATS_MONITOR_ENABLED_IN_RELEASE)
50-
behaviour.TrackRpcMetricsSend(ref message, length);
50+
// Local invocation sends to self
51+
behaviour.TrackRpcMetricsSend(m_NetworkManager.LocalClientId, ref message, length);
5152
#endif
5253
}
5354

com.unity.netcode.gameobjects/Runtime/Messaging/RpcTargets/ProxyRpcTargetGroup.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ internal override void Send(NetworkBehaviour behaviour, ref RpcMessage message,
2525
var proxyMessage = new ProxyMessage { Delivery = delivery, TargetClientIds = TargetClientIds.AsArray(), WrappedMessage = message };
2626
var size = behaviour.NetworkManager.MessageManager.SendMessage(ref proxyMessage, delivery, NetworkManager.ServerClientId);
2727
#if MULTIPLAYER_TOOLS && (DEVELOPMENT_BUILD || UNITY_EDITOR || UNITY_MP_TOOLS_NET_STATS_MONITOR_ENABLED_IN_RELEASE)
28-
behaviour.TrackRpcMetricsSend(ref message, size);
28+
foreach (var clientId in TargetClientIds)
29+
{
30+
behaviour.TrackRpcMetricsSend(clientId, ref message, size);
31+
}
2932
#endif
3033

3134
if (Ids.Contains(NetworkManager.ServerClientId))

com.unity.netcode.gameobjects/Runtime/Messaging/RpcTargets/ServerRpcTarget.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ internal override void Send(NetworkBehaviour behaviour, ref RpcMessage message,
4444
message.ReadBuffer = tempBuffer;
4545
message.Handle(ref context);
4646
#if MULTIPLAYER_TOOLS && (DEVELOPMENT_BUILD || UNITY_EDITOR || UNITY_MP_TOOLS_NET_STATS_MONITOR_ENABLED_IN_RELEASE)
47-
behaviour.TrackRpcMetricsSend(ref message, tempBuffer.Length);
47+
// Local invocation sends to self
48+
behaviour.TrackRpcMetricsSend(m_NetworkManager.LocalClientId, ref message, tempBuffer.Length);
4849
#endif
49-
5050
}
5151
else // Otherwise, send a proxied message to the owner of the object
5252
{

0 commit comments

Comments
 (0)