Skip to content

Commit b98736a

Browse files
authored
fix: disable using "Send" and "Receive" variants of RpcParams as RPC arguments (backport) (#1727)
1 parent 7142b6b commit b98736a

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

com.unity.netcode.gameobjects/Editor/CodeGen/CodeGenHelpers.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ internal static class CodeGenHelpers
2222
public static readonly string ClientRpcAttribute_FullName = typeof(ClientRpcAttribute).FullName;
2323
public static readonly string ServerRpcParams_FullName = typeof(ServerRpcParams).FullName;
2424
public static readonly string ClientRpcParams_FullName = typeof(ClientRpcParams).FullName;
25+
public static readonly string ClientRpcSendParams_FullName = typeof(ClientRpcSendParams).FullName;
26+
public static readonly string ClientRpcReceiveParams_FullName = typeof(ClientRpcReceiveParams).FullName;
27+
public static readonly string ServerRpcSendParams_FullName = typeof(ServerRpcSendParams).FullName;
28+
public static readonly string ServerRpcReceiveParams_FullName = typeof(ServerRpcReceiveParams).FullName;
2529
public static readonly string INetworkSerializable_FullName = typeof(INetworkSerializable).FullName;
2630
public static readonly string UnityColor_FullName = typeof(Color).FullName;
2731
public static readonly string UnityColor32_FullName = typeof(Color32).FullName;

com.unity.netcode.gameobjects/Editor/CodeGen/NetworkBehaviourILPP.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,19 @@ private void InjectWriteAndCallBlocks(MethodDefinition methodDefinition, CustomA
941941
{
942942
var paramDef = methodDefinition.Parameters[paramIndex];
943943
var paramType = paramDef.ParameterType;
944+
if (paramType.FullName == CodeGenHelpers.ClientRpcSendParams_FullName ||
945+
paramType.FullName == CodeGenHelpers.ClientRpcReceiveParams_FullName)
946+
{
947+
m_Diagnostics.AddError($"Rpcs may not accept {paramType.FullName} as a parameter. Use {nameof(ClientRpcParams)} instead.");
948+
continue;
949+
}
950+
951+
if (paramType.FullName == CodeGenHelpers.ServerRpcSendParams_FullName ||
952+
paramType.FullName == CodeGenHelpers.ServerRpcReceiveParams_FullName)
953+
{
954+
m_Diagnostics.AddError($"Rpcs may not accept {paramType.FullName} as a parameter. Use {nameof(ServerRpcParams)} instead.");
955+
continue;
956+
}
944957
// ServerRpcParams
945958
if (paramType.FullName == CodeGenHelpers.ServerRpcParams_FullName)
946959
{

0 commit comments

Comments
 (0)