Skip to content

Commit a3c152f

Browse files
committed
Delete obsolete code
1 parent 33b877d commit a3c152f

9 files changed

Lines changed: 9 additions & 197 deletions

File tree

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

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -617,8 +617,6 @@ private void CreateNetworkVariableTypeInitializers(AssemblyDefinition assembly,
617617
private const string k_RpcAttribute_Delivery = nameof(RpcAttribute.Delivery);
618618
private const string k_RpcAttribute_InvokePermission = nameof(RpcAttribute.InvokePermission);
619619

620-
private const string k_ServerRpcAttribute_RequireOwnership = "RequireOwnership";
621-
622620
private const string k_RpcParams_Server = nameof(__RpcParams.Server);
623621
private const string k_RpcParams_Client = nameof(__RpcParams.Client);
624622
private const string k_RpcParams_Ext = nameof(__RpcParams.Ext);
@@ -1499,10 +1497,6 @@ private void ProcessNetworkBehaviour(TypeDefinition typeDefinition, string[] ass
14991497
{
15001498
switch (attrField.Name)
15011499
{
1502-
case k_ServerRpcAttribute_RequireOwnership:
1503-
var requireOwnership = attrField.Argument.Type == rpcHandler.Module.TypeSystem.Boolean && (bool)attrField.Argument.Value;
1504-
invokePermission = requireOwnership ? RpcInvokePermission.Owner : RpcInvokePermission.Everyone;
1505-
break;
15061500
case k_RpcAttribute_InvokePermission:
15071501
invokePermission = (RpcInvokePermission)attrField.Argument.Value;
15081502
break;
@@ -1689,28 +1683,6 @@ private CustomAttribute CheckAndGetRpcAttribute(MethodDefinition methodDefinitio
16891683
return null;
16901684
}
16911685

1692-
bool hasInvokePermission = false, hasRequireOwnership = false;
1693-
1694-
foreach (var argument in rpcAttribute.Fields)
1695-
{
1696-
switch (argument.Name)
1697-
{
1698-
case k_ServerRpcAttribute_RequireOwnership:
1699-
hasRequireOwnership = true;
1700-
break;
1701-
case k_RpcAttribute_InvokePermission:
1702-
hasInvokePermission = true;
1703-
break;
1704-
}
1705-
}
1706-
1707-
if (hasInvokePermission && hasRequireOwnership)
1708-
{
1709-
m_Diagnostics.AddError($"{methodDefinition.Name} cannot declare both RequireOwnership and InvokePermission!");
1710-
return null;
1711-
}
1712-
1713-
17141686
// Checks for IsSerializable are moved to later as the check is now done by dynamically seeing if any valid
17151687
// serializer OR extension method exists for it.
17161688
return rpcAttribute;
@@ -2177,7 +2149,6 @@ private void InjectWriteAndCallBlocks(MethodDefinition methodDefinition, CustomA
21772149
var isServerRpc = rpcAttribute.AttributeType.FullName == CodeGenHelpers.ServerRpcAttribute_FullName;
21782150
var isClientRpc = rpcAttribute.AttributeType.FullName == CodeGenHelpers.ClientRpcAttribute_FullName;
21792151
var isGenericRpc = rpcAttribute.AttributeType.FullName == CodeGenHelpers.RpcAttribute_FullName;
2180-
var requireOwnership = true; // default value MUST be == `ServerRpcAttribute.RequireOwnership`
21812152
var rpcDelivery = RpcDelivery.Reliable; // default value MUST be == `RpcAttribute.Delivery`
21822153
var defaultTarget = SendTo.Everyone;
21832154
var allowTargetOverride = false;
@@ -2193,9 +2164,6 @@ private void InjectWriteAndCallBlocks(MethodDefinition methodDefinition, CustomA
21932164
case k_RpcAttribute_Delivery:
21942165
rpcDelivery = (RpcDelivery)attrField.Argument.Value;
21952166
break;
2196-
case k_ServerRpcAttribute_RequireOwnership:
2197-
requireOwnership = attrField.Argument.Type == typeSystem.Boolean && (bool)attrField.Argument.Value;
2198-
break;
21992167
case nameof(RpcAttribute.AllowTargetOverride):
22002168
allowTargetOverride = attrField.Argument.Type == typeSystem.Boolean && (bool)attrField.Argument.Value;
22012169
break;
@@ -2317,42 +2285,6 @@ private void InjectWriteAndCallBlocks(MethodDefinition methodDefinition, CustomA
23172285
{
23182286
// ServerRpc
23192287

2320-
if (requireOwnership)
2321-
{
2322-
var roReturnInstr = processor.Create(OpCodes.Ret);
2323-
var roLastInstr = processor.Create(OpCodes.Nop);
2324-
2325-
// if (this.OwnerClientId != networkManager.LocalClientId) { ... } return;
2326-
instructions.Add(processor.Create(OpCodes.Ldarg_0));
2327-
instructions.Add(processor.Create(OpCodes.Call, m_NetworkBehaviour_getOwnerClientId_MethodRef));
2328-
instructions.Add(processor.Create(OpCodes.Ldloc, netManLocIdx));
2329-
instructions.Add(processor.Create(OpCodes.Callvirt, m_NetworkManager_getLocalClientId_MethodRef));
2330-
instructions.Add(processor.Create(OpCodes.Ceq));
2331-
instructions.Add(processor.Create(OpCodes.Ldc_I4, 0));
2332-
instructions.Add(processor.Create(OpCodes.Ceq));
2333-
instructions.Add(processor.Create(OpCodes.Brfalse, roLastInstr));
2334-
2335-
var logNextInstr = processor.Create(OpCodes.Nop);
2336-
2337-
// if (LogLevel.Normal > networkManager.LogLevel)
2338-
instructions.Add(processor.Create(OpCodes.Ldloc, netManLocIdx));
2339-
instructions.Add(processor.Create(OpCodes.Ldfld, m_NetworkManager_LogLevel_FieldRef));
2340-
instructions.Add(processor.Create(OpCodes.Ldc_I4, (int)LogLevel.Normal));
2341-
instructions.Add(processor.Create(OpCodes.Cgt));
2342-
instructions.Add(processor.Create(OpCodes.Ldc_I4, 0));
2343-
instructions.Add(processor.Create(OpCodes.Ceq));
2344-
instructions.Add(processor.Create(OpCodes.Brfalse, logNextInstr));
2345-
2346-
// Debug.LogError(...);
2347-
instructions.Add(processor.Create(OpCodes.Ldstr, "Only the owner can invoke a ServerRpc that requires ownership!"));
2348-
instructions.Add(processor.Create(OpCodes.Call, m_Debug_LogError_MethodRef));
2349-
2350-
instructions.Add(logNextInstr);
2351-
2352-
instructions.Add(roReturnInstr);
2353-
instructions.Add(roLastInstr);
2354-
}
2355-
23562288
// var bufferWriter = __beginSendServerRpc(rpcMethodId, serverRpcParams, rpcDelivery);
23572289
instructions.Add(processor.Create(OpCodes.Ldarg_0));
23582290

@@ -2960,14 +2892,10 @@ private MethodDefinition GenerateStaticHandler(MethodDefinition methodDefinition
29602892
var processor = rpcHandler.Body.GetILProcessor();
29612893

29622894
var isServerRpc = rpcAttribute.AttributeType.FullName == CodeGenHelpers.ServerRpcAttribute_FullName;
2963-
var requireOwnership = true; // default value MUST be == `ServerRpcAttribute.RequireOwnership`
29642895
foreach (var attrField in rpcAttribute.Fields)
29652896
{
29662897
switch (attrField.Name)
29672898
{
2968-
case k_ServerRpcAttribute_RequireOwnership:
2969-
requireOwnership = attrField.Argument.Type == typeSystem.Boolean && (bool)attrField.Argument.Value;
2970-
break;
29712899
}
29722900
}
29732901

@@ -2996,44 +2924,6 @@ private MethodDefinition GenerateStaticHandler(MethodDefinition methodDefinition
29962924
processor.Append(lastInstr);
29972925
}
29982926

2999-
if (isServerRpc && requireOwnership)
3000-
{
3001-
var roReturnInstr = processor.Create(OpCodes.Ret);
3002-
var roLastInstr = processor.Create(OpCodes.Nop);
3003-
3004-
// if (rpcParams.Server.Receive.SenderClientId != target.OwnerClientId) { ... } return;
3005-
processor.Emit(OpCodes.Ldarg_2);
3006-
processor.Emit(OpCodes.Ldfld, m_RpcParams_Server_FieldRef);
3007-
processor.Emit(OpCodes.Ldfld, m_ServerRpcParams_Receive_FieldRef);
3008-
processor.Emit(OpCodes.Ldfld, m_ServerRpcParams_Receive_SenderClientId_FieldRef);
3009-
processor.Emit(OpCodes.Ldarg_0);
3010-
processor.Emit(OpCodes.Call, m_NetworkBehaviour_getOwnerClientId_MethodRef);
3011-
processor.Emit(OpCodes.Ceq);
3012-
processor.Emit(OpCodes.Ldc_I4, 0);
3013-
processor.Emit(OpCodes.Ceq);
3014-
processor.Emit(OpCodes.Brfalse, roLastInstr);
3015-
3016-
var logNextInstr = processor.Create(OpCodes.Nop);
3017-
3018-
// if (LogLevel.Normal > networkManager.LogLevel)
3019-
processor.Emit(OpCodes.Ldloc, netManLocIdx);
3020-
processor.Emit(OpCodes.Ldfld, m_NetworkManager_LogLevel_FieldRef);
3021-
processor.Emit(OpCodes.Ldc_I4, (int)LogLevel.Normal);
3022-
processor.Emit(OpCodes.Cgt);
3023-
processor.Emit(OpCodes.Ldc_I4, 0);
3024-
processor.Emit(OpCodes.Ceq);
3025-
processor.Emit(OpCodes.Brfalse, logNextInstr);
3026-
3027-
// Debug.LogError(...);
3028-
processor.Emit(OpCodes.Ldstr, "Only the owner can invoke a ServerRpc that requires ownership!");
3029-
processor.Emit(OpCodes.Call, m_Debug_LogError_MethodRef);
3030-
3031-
processor.Append(logNextInstr);
3032-
3033-
processor.Append(roReturnInstr);
3034-
processor.Append(roLastInstr);
3035-
}
3036-
30372927
// read method parameters from stream
30382928
int paramCount = methodDefinition.Parameters.Count;
30392929
int[] paramLocalMap = new int[paramCount];

‎com.unity.netcode.gameobjects/Editor/CodeGen/RuntimeAccessModifiersILPP.cs‎

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
4747

4848
switch (typeDefinition.Name)
4949
{
50-
case nameof(NetworkManager):
51-
ProcessNetworkManager(typeDefinition, compiledAssembly.Defines);
52-
break;
5350
case nameof(NetworkBehaviour):
5451
ProcessNetworkBehaviour(typeDefinition);
5552
break;
@@ -90,38 +87,6 @@ public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
9087
return new ILPostProcessResult(new InMemoryAssembly(pe.ToArray(), pdb.ToArray()), m_Diagnostics);
9188
}
9289

93-
// TODO: Deprecate...
94-
// This is changing accessibility for values that are no longer used, but since our validator runs
95-
// after ILPP and sees those values as public, they cannot be removed until a major version change.
96-
private void ProcessNetworkManager(TypeDefinition typeDefinition, string[] assemblyDefines)
97-
{
98-
foreach (var fieldDefinition in typeDefinition.Fields)
99-
{
100-
if (fieldDefinition.Name == "__rpc_func_table")
101-
{
102-
fieldDefinition.IsPublic = true;
103-
}
104-
105-
if (fieldDefinition.Name == "RpcReceiveHandler")
106-
{
107-
fieldDefinition.IsPublic = true;
108-
}
109-
110-
if (fieldDefinition.Name == "__rpc_name_table")
111-
{
112-
fieldDefinition.IsPublic = true;
113-
}
114-
}
115-
116-
foreach (var nestedTypeDefinition in typeDefinition.NestedTypes)
117-
{
118-
if (nestedTypeDefinition.Name == "RpcReceiveHandler")
119-
{
120-
nestedTypeDefinition.IsNestedPublic = true;
121-
}
122-
}
123-
}
124-
12590
private void ProcessNetworkBehaviour(TypeDefinition typeDefinition)
12691
{
12792
foreach (var nestedType in typeDefinition.NestedTypes)

‎com.unity.netcode.gameobjects/Editor/NetworkObjectEditor.cs‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ public override void OnInspectorGUI()
101101
EditorGUILayout.Toggle(nameof(NetworkObject.IsOwner), m_NetworkObject.IsOwner);
102102
EditorGUILayout.Toggle(nameof(NetworkObject.IsOwnedByServer), m_NetworkObject.IsOwnedByServer);
103103
EditorGUILayout.Toggle(nameof(NetworkObject.IsPlayerObject), m_NetworkObject.IsPlayerObject);
104-
EditorGUILayout.Toggle("IsSceneObject", m_NetworkObject.InScenePlaced);
105104
EditorGUILayout.Toggle(nameof(NetworkObject.DestroyWithScene), m_NetworkObject.DestroyWithScene);
106105
EditorGUILayout.TextField(nameof(NetworkObject.NetworkManager), m_NetworkObject.NetworkManager == null ? "null" : m_NetworkObject.NetworkManager.gameObject.name);
107106
GUI.enabled = guiEnabled;

‎com.unity.netcode.gameobjects/Runtime/Connection/NetworkConnectionManager.cs‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,6 @@ internal void HandleConnectionApproval(ulong ownerClientId, bool createPlayerObj
10261026
if (NetworkManager.SpawnManager.AuthorityLocalSpawn(
10271027
playerObject,
10281028
NetworkManager.SpawnManager.GetNetworkObjectId(),
1029-
sceneObject: false,
10301029
playerObject: true,
10311030
ownerClientId,
10321031
destroyWithScene: false))
@@ -1189,7 +1188,6 @@ internal void CreateAndSpawnPlayer(ulong ownerId)
11891188
return;
11901189
}
11911190

1192-
networkObject.IsSceneObjectInternal = false;
11931191
networkObject.NetworkManagerOwner = NetworkManager;
11941192
networkObject.SpawnAsPlayerObject(ownerId, networkObject.DestroyWithScene);
11951193
}

‎com.unity.netcode.gameobjects/Runtime/Core/NetworkManager.cs‎

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,6 @@ private static void ResetStaticsOnLoad()
6565
public bool NetworkManagerExpanded;
6666
#endif
6767

68-
// TODO: Deprecate...
69-
// The following internal values are not used, but because ILPP makes them public in the assembly, they cannot
70-
// be removed thanks to our semver validation.
71-
#pragma warning disable IDE1006 // disable naming rule violation check
72-
73-
// RuntimeAccessModifiersILPP will make this `public`
74-
[Obsolete("This field is no longer used and will be removed in a future version.", true)]
75-
internal delegate void RpcReceiveHandler(NetworkBehaviour behaviour, FastBufferReader reader, __RpcParams parameters);
76-
77-
// RuntimeAccessModifiersILPP will make this `public`
78-
[Obsolete("This field is no longer used and will be removed in a future version.", true)]
79-
internal static readonly Dictionary<uint, RpcReceiveHandler> __rpc_func_table = new Dictionary<uint, RpcReceiveHandler>();
80-
81-
// RuntimeAccessModifiersILPP will make this `public` (legacy table should be removed in v3.x.x)
82-
[Obsolete("This field is no longer used and will be removed in a future version.", true)]
83-
internal static readonly Dictionary<uint, string> __rpc_name_table = new Dictionary<uint, string>();
84-
85-
#pragma warning restore IDE1006 // restore naming rule violation check
86-
8768
#if DEBUG
8869
private static List<Type> s_SerializedType = new List<Type>();
8970
// This is used to control the serialized type not optimized messaging for integration test purposes

‎com.unity.netcode.gameobjects/Runtime/Core/NetworkObject.cs‎

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,6 @@ private void CheckForInScenePlaced()
347347
}
348348
}
349349

350-
IsSceneObjectInternal = true;
351-
352350
// We go ahead and set this for "typical in-scene placed" usage patterns so this is serialized
353351
InScenePlaced = true;
354352

@@ -1319,11 +1317,8 @@ public bool HasOwnershipStatus(OwnershipStatus status)
13191317
/// This method is marked for deprecation.<br />
13201318
/// Use <see cref="InScenePlaced"/> instead.
13211319
/// </remarks>
1322-
internal bool? IsSceneObjectInternal { get; set; }
1323-
13241320
[Obsolete("Use InScenePlaced instead", true)]
1325-
public bool? IsSceneObject { get => IsSceneObjectInternal; internal set => IsSceneObjectInternal = value; }
1326-
1321+
public bool? IsSceneObject { get; internal set; }
13271322

13281323
/// <summary>
13291324
/// The serialized value.
@@ -1362,7 +1357,6 @@ internal set
13621357
[Obsolete("SetSceneObjectStatus is now calculated during the build.", true)]
13631358
public void SetSceneObjectStatus(bool isSceneObject = false)
13641359
{
1365-
IsSceneObjectInternal = isSceneObject;
13661360
}
13671361

13681362
/// <summary>
@@ -1988,8 +1982,6 @@ private void SpawnInternal(bool destroyWithScene, ulong ownerClientId, bool play
19881982
return;
19891983
}
19901984

1991-
var legacyIsSceneObject = IsSceneObjectInternal.HasValue && IsSceneObjectInternal.Value;
1992-
19931985
// If the initial state of the GameObject was disabled and InScenePlaced is marked,
19941986
// then spawn it as in-scene placed.
19951987
// Otherwise:
@@ -2006,7 +1998,7 @@ private void SpawnInternal(bool destroyWithScene, ulong ownerClientId, bool play
20061998
InScenePlaced = false;
20071999
}
20082000

2009-
if (!NetworkManagerOwner.SpawnManager.AuthorityLocalSpawn(this, NetworkManagerOwner.SpawnManager.GetNetworkObjectId(), legacyIsSceneObject, playerObject, ownerClientId, destroyWithScene))
2001+
if (!NetworkManagerOwner.SpawnManager.AuthorityLocalSpawn(this, NetworkManagerOwner.SpawnManager.GetNetworkObjectId(), playerObject, ownerClientId, destroyWithScene))
20102002
{
20112003
if (NetworkManagerOwner.LogLevel <= LogLevel.Normal)
20122004
{

‎com.unity.netcode.gameobjects/Runtime/SceneManagement/NetworkSceneManager.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,7 @@ private void OnSessionOwnerLoadedScene(uint sceneEventId, Scene scene)
18421842
{
18431843
// All in-scene placed NetworkObjects default to being owned by the server
18441844
NetworkManager.SpawnManager.AuthorityLocalSpawn(keyValuePairBySceneHandle.Value,
1845-
NetworkManager.SpawnManager.GetNetworkObjectId(), true, false, NetworkManager.LocalClientId, true);
1845+
NetworkManager.SpawnManager.GetNetworkObjectId(), false, NetworkManager.LocalClientId, true);
18461846
}
18471847
}
18481848
}

0 commit comments

Comments
 (0)