Skip to content

Commit 669b878

Browse files
committed
Merge branch 'develop' into sam/feature/interpolation-for-network-transform
* develop: (26 commits) fix: client connected InvokeOnClientConnectedCallback with scene management disabled (#1123) fix: removed `public` class `NetcodeObserver` (MTT-1157) (#1122) feat: add NetworkMessageSent/Received metrics (#1112) feat: snapshot. MTU sizing option for Snapshot. MTT-1087 (#1111) Add metrics for transport bytes sent and received (#1104) fix: Missing end profiling sample (#1118) chore: support standalone mode for netcode runtimetests (#1115) feat: Change MetricNames for a more complex value type (#1109) feat: Track scene event metrics (#1089) style: whitespace fixes (#1117) feat: replace scene registration with scenes in build list (#1080) fix: mtt-857 GitHub issue 915 (#1099) fix: NetworkSceneManager exception when DontDestroyOnLoad NetworkObjects are being synchronized (#1090) feat: NetworkTransform Custom Editor Inspector UI (#1101) refactor: remove TempGlobalObjectIdHashOverride (#1105) fix: MTT-1124 Counters are now reported in sync with other metrics (#1096) refactor: convert using var statements to using var declarations (#1100) chore: updated all of the namespaces to match the tools package change (#1095) refactor!: remove network variable settings, network behaviour cleanup (#1097) fix: mtt-1088 review. Safer handling of out-of-order or old messages (#1091) ... # Conflicts: # com.unity.netcode.gameobjects/Prototyping/NetworkTransform.cs
2 parents b6ac562 + f703ba5 commit 669b878

File tree

157 files changed

+8739
-5371
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

157 files changed

+8739
-5371
lines changed

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ indent_size = 4
1515
dotnet_diagnostic.IDE0001.severity = error # Simplify name
1616
dotnet_diagnostic.IDE0002.severity = error # Simplify member access
1717
dotnet_diagnostic.IDE0005.severity = error # Remove unnecessary import
18+
dotnet_diagnostic.IDE0063.severity = error # Use simple 'using' statement
1819
dotnet_style_qualification_for_field = false:error
1920
dotnet_style_qualification_for_property = false:error
2021
dotnet_style_qualification_for_method = false:error

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,12 @@ private static MemoryStream MemoryStreamFor(string fileName)
9797
return Retry(10, TimeSpan.FromSeconds(1), () =>
9898
{
9999
byte[] byteArray;
100-
using (var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
100+
using var fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
101+
byteArray = new byte[fileStream.Length];
102+
var readLength = fileStream.Read(byteArray, 0, (int)fileStream.Length);
103+
if (readLength != fileStream.Length)
101104
{
102-
byteArray = new byte[fs.Length];
103-
var readLength = fs.Read(byteArray, 0, (int)fs.Length);
104-
if (readLength != fs.Length)
105-
{
106-
throw new InvalidOperationException("File read length is not full length of file.");
107-
}
105+
throw new InvalidOperationException("File read length is not full length of file.");
108106
}
109107

110108
return new MemoryStream(byteArray);

com.unity.netcode.gameobjects/Editor/NetworkBehaviourEditor.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,15 @@ private void RenderNetworkVariable(int index)
5858
if (value == null)
5959
{
6060
var fieldType = m_NetworkVariableFields[m_NetworkVariableNames[index]].FieldType;
61-
var networkVariable = (INetworkVariable)Activator.CreateInstance(fieldType, true);
61+
var networkVariable = (NetworkVariableBase)Activator.CreateInstance(fieldType, true);
6262
m_NetworkVariableFields[m_NetworkVariableNames[index]].SetValue(target, networkVariable);
6363
}
6464

6565
var type = m_NetworkVariableFields[m_NetworkVariableNames[index]].GetValue(target).GetType();
6666
var genericType = type.GetGenericArguments()[0];
6767

6868
EditorGUILayout.BeginHorizontal();
69-
if (genericType == typeof(string))
70-
{
71-
var networkVariable = (NetworkVariable<string>)m_NetworkVariableFields[m_NetworkVariableNames[index]].GetValue(target);
72-
networkVariable.Value = EditorGUILayout.TextField(m_NetworkVariableNames[index], networkVariable.Value);
73-
}
74-
else if (genericType.IsValueType)
69+
if (genericType.IsValueType)
7570
{
7671
var method = typeof(NetworkBehaviourEditor).GetMethod("RenderNetworkVariableValueType", BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy | BindingFlags.NonPublic);
7772
var genericMethod = method.MakeGenericMethod(genericType);
@@ -86,7 +81,7 @@ private void RenderNetworkVariable(int index)
8681
EditorGUILayout.EndHorizontal();
8782
}
8883

89-
private void RenderNetworkVariableValueType<T>(int index) where T : struct
84+
private void RenderNetworkVariableValueType<T>(int index) where T : unmanaged
9085
{
9186
var networkVariable = (NetworkVariable<T>)m_NetworkVariableFields[m_NetworkVariableNames[index]].GetValue(target);
9287
var type = typeof(T);

com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ public class NetworkManagerEditor : UnityEditor.Editor
2121
// NetworkConfig fields
2222
private SerializedProperty m_PlayerPrefabProperty;
2323
private SerializedProperty m_ProtocolVersionProperty;
24-
private SerializedProperty m_AllowRuntimeSceneChangesProperty;
2524
private SerializedProperty m_NetworkTransportProperty;
2625
private SerializedProperty m_TickRateProperty;
2726
private SerializedProperty m_MaxObjectUpdatesPerTickProperty;
@@ -37,7 +36,6 @@ public class NetworkManagerEditor : UnityEditor.Editor
3736
private SerializedProperty m_LoadSceneTimeOutProperty;
3837

3938
private ReorderableList m_NetworkPrefabsList;
40-
private ReorderableList m_RegisteredSceneAssetsList;
4139

4240
private NetworkManager m_NetworkManager;
4341
private bool m_Initialized;
@@ -92,7 +90,6 @@ private void Initialize()
9290
// NetworkConfig properties
9391
m_PlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.PlayerPrefab));
9492
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative("ProtocolVersion");
95-
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative("AllowRuntimeSceneChanges");
9693
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkTransport");
9794
m_TickRateProperty = m_NetworkConfigProperty.FindPropertyRelative("TickRate");
9895
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout");
@@ -121,7 +118,6 @@ private void CheckNullProperties()
121118
// NetworkConfig properties
122119
m_PlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.PlayerPrefab));
123120
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative("ProtocolVersion");
124-
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative("AllowRuntimeSceneChanges");
125121
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkTransport");
126122
m_TickRateProperty = m_NetworkConfigProperty.FindPropertyRelative("TickRate");
127123
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout");
@@ -200,30 +196,6 @@ private void OnEnable()
200196
}
201197
};
202198
m_NetworkPrefabsList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "NetworkPrefabs");
203-
204-
m_RegisteredSceneAssetsList = new ReorderableList(serializedObject, serializedObject.FindProperty(nameof(NetworkManager.NetworkConfig)).FindPropertyRelative(nameof(NetworkConfig.RegisteredSceneAssets)), true, true, true, true);
205-
m_RegisteredSceneAssetsList.elementHeightCallback = index =>
206-
{
207-
return EditorGUIUtility.singleLineHeight + 8;
208-
};
209-
m_RegisteredSceneAssetsList.drawElementCallback = (rect, index, isActive, isFocused) =>
210-
{
211-
rect.y += 5;
212-
213-
var sceneAsset = m_RegisteredSceneAssetsList.serializedProperty.GetArrayElementAtIndex(index);
214-
int firstLabelWidth = 24;
215-
int padding = 2;
216-
217-
EditorGUI.LabelField(new Rect(rect.x, rect.y, firstLabelWidth, EditorGUIUtility.singleLineHeight), index.ToString());
218-
EditorGUI.PropertyField(new Rect(rect.x + firstLabelWidth, rect.y, rect.width - firstLabelWidth - padding, EditorGUIUtility.singleLineHeight), sceneAsset, GUIContent.none);
219-
};
220-
221-
m_RegisteredSceneAssetsList.drawHeaderCallback = rect => EditorGUI.LabelField(rect, "NetworkScenes");
222-
223-
m_RegisteredSceneAssetsList.onAddCallback = (registeredList) =>
224-
{
225-
m_NetworkManager.NetworkConfig.RegisteredSceneAssets.Add(null);
226-
};
227199
}
228200

229201
public override void OnInspectorGUI()
@@ -257,13 +229,6 @@ public override void OnInspectorGUI()
257229
m_NetworkPrefabsList.DoLayoutList();
258230
EditorGUILayout.Space();
259231

260-
using (new EditorGUI.DisabledScope(!m_NetworkManager.NetworkConfig.EnableSceneManagement))
261-
{
262-
m_RegisteredSceneAssetsList.DoLayoutList();
263-
EditorGUILayout.Space();
264-
}
265-
266-
267232
EditorGUILayout.LabelField("General", EditorStyles.boldLabel);
268233
EditorGUILayout.PropertyField(m_ProtocolVersionProperty);
269234

@@ -330,7 +295,6 @@ public override void OnInspectorGUI()
330295
using (new EditorGUI.DisabledScope(!m_NetworkManager.NetworkConfig.EnableSceneManagement))
331296
{
332297
EditorGUILayout.PropertyField(m_LoadSceneTimeOutProperty);
333-
EditorGUILayout.PropertyField(m_AllowRuntimeSceneChangesProperty);
334298
}
335299

336300
serializedObject.ApplyModifiedProperties();
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
using Unity.Netcode.Prototyping;
2+
using UnityEditor;
3+
using UnityEngine;
4+
5+
namespace Unity.Netcode.Editor
6+
{
7+
[CustomEditor(typeof(NetworkTransform))]
8+
public class NetworkTransformEditor : UnityEditor.Editor
9+
{
10+
private SerializedProperty m_SyncPositionXProperty;
11+
private SerializedProperty m_SyncPositionYProperty;
12+
private SerializedProperty m_SyncPositionZProperty;
13+
private SerializedProperty m_SyncRotationXProperty;
14+
private SerializedProperty m_SyncRotationYProperty;
15+
private SerializedProperty m_SyncRotationZProperty;
16+
private SerializedProperty m_SyncScaleXProperty;
17+
private SerializedProperty m_SyncScaleYProperty;
18+
private SerializedProperty m_SyncScaleZProperty;
19+
private SerializedProperty m_PositionThresholdProperty;
20+
private SerializedProperty m_RotAngleThresholdProperty;
21+
private SerializedProperty m_ScaleThresholdProperty;
22+
private SerializedProperty m_InLocalSpaceProperty;
23+
private SerializedProperty m_InterpolateProperty;
24+
25+
private static int s_ToggleOffset = 45;
26+
private static float s_MaxRowWidth = EditorGUIUtility.labelWidth + EditorGUIUtility.fieldWidth + 5;
27+
private static GUIContent s_PositionLabel = EditorGUIUtility.TrTextContent("Position");
28+
private static GUIContent s_RotationLabel = EditorGUIUtility.TrTextContent("Rotation");
29+
private static GUIContent s_ScaleLabel = EditorGUIUtility.TrTextContent("Scale");
30+
31+
public void OnEnable()
32+
{
33+
m_SyncPositionXProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncPositionX));
34+
m_SyncPositionYProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncPositionY));
35+
m_SyncPositionZProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncPositionZ));
36+
m_SyncRotationXProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncRotAngleX));
37+
m_SyncRotationYProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncRotAngleY));
38+
m_SyncRotationZProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncRotAngleZ));
39+
m_SyncScaleXProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncScaleX));
40+
m_SyncScaleYProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncScaleY));
41+
m_SyncScaleZProperty = serializedObject.FindProperty(nameof(NetworkTransform.SyncScaleZ));
42+
m_PositionThresholdProperty = serializedObject.FindProperty(nameof(NetworkTransform.PositionThreshold));
43+
m_RotAngleThresholdProperty = serializedObject.FindProperty(nameof(NetworkTransform.RotAngleThreshold));
44+
m_ScaleThresholdProperty = serializedObject.FindProperty(nameof(NetworkTransform.ScaleThreshold));
45+
m_InLocalSpaceProperty = serializedObject.FindProperty(nameof(NetworkTransform.InLocalSpace));
46+
m_InterpolateProperty = serializedObject.FindProperty(nameof(NetworkTransform.Interpolate));
47+
}
48+
49+
public override void OnInspectorGUI()
50+
{
51+
EditorGUILayout.LabelField("Syncing", EditorStyles.boldLabel);
52+
{
53+
GUILayout.BeginHorizontal();
54+
55+
var rect = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, s_MaxRowWidth, EditorGUIUtility.singleLineHeight, EditorGUIUtility.singleLineHeight, EditorStyles.numberField);
56+
var ctid = GUIUtility.GetControlID(7231, FocusType.Keyboard, rect);
57+
58+
rect = EditorGUI.PrefixLabel(rect, ctid, s_PositionLabel);
59+
rect.width = s_ToggleOffset;
60+
61+
m_SyncPositionXProperty.boolValue = EditorGUI.ToggleLeft(rect, "X", m_SyncPositionXProperty.boolValue);
62+
rect.x += s_ToggleOffset;
63+
m_SyncPositionYProperty.boolValue = EditorGUI.ToggleLeft(rect, "Y", m_SyncPositionYProperty.boolValue);
64+
rect.x += s_ToggleOffset;
65+
m_SyncPositionZProperty.boolValue = EditorGUI.ToggleLeft(rect, "Z", m_SyncPositionZProperty.boolValue);
66+
67+
GUILayout.EndHorizontal();
68+
}
69+
{
70+
GUILayout.BeginHorizontal();
71+
72+
var rect = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, s_MaxRowWidth, EditorGUIUtility.singleLineHeight, EditorGUIUtility.singleLineHeight, EditorStyles.numberField);
73+
var ctid = GUIUtility.GetControlID(7231, FocusType.Keyboard, rect);
74+
75+
rect = EditorGUI.PrefixLabel(rect, ctid, s_RotationLabel);
76+
rect.width = s_ToggleOffset;
77+
78+
m_SyncRotationXProperty.boolValue = EditorGUI.ToggleLeft(rect, "X", m_SyncRotationXProperty.boolValue);
79+
rect.x += s_ToggleOffset;
80+
m_SyncRotationYProperty.boolValue = EditorGUI.ToggleLeft(rect, "Y", m_SyncRotationYProperty.boolValue);
81+
rect.x += s_ToggleOffset;
82+
m_SyncRotationZProperty.boolValue = EditorGUI.ToggleLeft(rect, "Z", m_SyncRotationZProperty.boolValue);
83+
84+
GUILayout.EndHorizontal();
85+
}
86+
{
87+
GUILayout.BeginHorizontal();
88+
89+
var rect = GUILayoutUtility.GetRect(EditorGUIUtility.fieldWidth, s_MaxRowWidth, EditorGUIUtility.singleLineHeight, EditorGUIUtility.singleLineHeight, EditorStyles.numberField);
90+
var ctid = GUIUtility.GetControlID(7231, FocusType.Keyboard, rect);
91+
92+
rect = EditorGUI.PrefixLabel(rect, ctid, s_ScaleLabel);
93+
rect.width = s_ToggleOffset;
94+
95+
m_SyncScaleXProperty.boolValue = EditorGUI.ToggleLeft(rect, "X", m_SyncScaleXProperty.boolValue);
96+
rect.x += s_ToggleOffset;
97+
m_SyncScaleYProperty.boolValue = EditorGUI.ToggleLeft(rect, "Y", m_SyncScaleYProperty.boolValue);
98+
rect.x += s_ToggleOffset;
99+
m_SyncScaleZProperty.boolValue = EditorGUI.ToggleLeft(rect, "Z", m_SyncScaleZProperty.boolValue);
100+
101+
GUILayout.EndHorizontal();
102+
}
103+
104+
EditorGUILayout.Space();
105+
EditorGUILayout.LabelField("Thresholds", EditorStyles.boldLabel);
106+
EditorGUILayout.PropertyField(m_PositionThresholdProperty);
107+
EditorGUILayout.PropertyField(m_RotAngleThresholdProperty);
108+
EditorGUILayout.PropertyField(m_ScaleThresholdProperty);
109+
110+
EditorGUILayout.Space();
111+
EditorGUILayout.LabelField("Configurations", EditorStyles.boldLabel);
112+
EditorGUILayout.PropertyField(m_InLocalSpaceProperty);
113+
EditorGUILayout.PropertyField(m_InterpolateProperty);
114+
115+
serializedObject.ApplyModifiedProperties();
116+
}
117+
}
118+
}

com.unity.netcode.gameobjects/Runtime/NetworkVariable/INetworkVariable.cs.meta renamed to com.unity.netcode.gameobjects/Editor/NetworkTransformEditor.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

com.unity.netcode.gameobjects/Prototyping/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
#if UNITY_EDITOR
44
[assembly: InternalsVisibleTo("Unity.Netcode.EditorTests")]
5-
[assembly: InternalsVisibleTo("Unity.Netcode.RuntimeTests")]
65
[assembly: InternalsVisibleTo("Unity.Netcode.Editor.CodeGen")]
76
[assembly: InternalsVisibleTo("Unity.Netcode.Editor")]
87
[assembly: InternalsVisibleTo("TestProject.EditorTests")]
98
[assembly: InternalsVisibleTo("TestProject.RuntimeTests")]
109
#endif
10+
[assembly: InternalsVisibleTo("Unity.Netcode.RuntimeTests")]

com.unity.netcode.gameobjects/Prototyping/NetworkTransform.cs

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,11 @@ public void NetworkSerialize(NetworkSerializer serializer)
194194
}
195195
}
196196

197-
/// <summary>
198-
/// The network channel to use send updates
199-
/// </summary>
200-
[Tooltip("The network channel to use send updates")]
201-
private NetworkChannel Channel = NetworkChannel.PositionUpdate;
197+
public bool SyncPositionX = true, SyncPositionY = true, SyncPositionZ = true;
198+
public bool SyncRotAngleX = true, SyncRotAngleY = true, SyncRotAngleZ = true;
199+
public bool SyncScaleX = true, SyncScaleY = true, SyncScaleZ = true;
200+
201+
public float PositionThreshold, RotAngleThreshold, ScaleThreshold;
202202

203203
/// <summary>
204204
/// Sets whether this transform should sync in local space or in world space.
@@ -209,11 +209,8 @@ public void NetworkSerialize(NetworkSerializer serializer)
209209
[Tooltip("Sets whether this transform should sync in local space or in world space")]
210210
public bool InLocalSpace = false;
211211

212-
public bool SyncPositionX = true, SyncPositionY = true, SyncPositionZ = true;
213-
public bool SyncRotAngleX = true, SyncRotAngleY = true, SyncRotAngleZ = true;
214-
public bool SyncScaleX = true, SyncScaleY = true, SyncScaleZ = true;
215-
216-
public float PositionThreshold, RotAngleThreshold, ScaleThreshold;
212+
// todo: revisit after MTT-876
213+
public bool Interpolate = true;
217214

218215
/// <summary>
219216
/// The base amount of sends per seconds to use when range is disabled
@@ -285,7 +282,8 @@ public IEnumerable<IInterpolator<Quaternion>> AllQuaternionInterpolators()
285282

286283
private int k_debugDrawLineTime = 10;
287284

288-
285+
internal NetworkState LocalNetworkState;
286+
289287
private Transform m_Transform; // cache the transform component to reduce unnecessary bounce between managed and native
290288

291289
private Vector3 TransformPosition
@@ -676,7 +674,6 @@ private void OnNetworkStateChanged(NetworkState oldState, NetworkState newState)
676674
private void Awake()
677675
{
678676
m_Transform = transform;
679-
680677
bool interpolatorAlreadySet = false;
681678
foreach (var interpolator in AllFloatInterpolators())
682679
{
@@ -699,9 +696,7 @@ private void Awake()
699696
RotationInterpolator.Awake();
700697
RotationInterpolator.UseFixedUpdate = UseFixedUpdate;
701698

702-
ReplNetworkState.Settings.SendNetworkChannel = Channel;
703-
ReplNetworkState.Settings.SendTickrate = FixedSendsPerSecond;
704-
699+
ReplNetworkState.Settings.SendNetworkChannel = NetworkChannel.PositionUpdate;
705700
ReplNetworkState.OnValueChanged += OnNetworkStateChanged;
706701
}
707702

@@ -759,7 +754,17 @@ private void DoSendToOthers(double time)
759754
{
760755
// check for time there was a change to the transform
761756
// this needs to be done in Update to catch that time change as soon as it happens.
762-
var isDirty = UpdateNetworkStateCheckDirty(ref ReplNetworkState.ValueRef, time); // todo sam diff here is Fixedtime
757+
/*
758+
todo
759+
if (UpdateNetworkState(ref LocalNetworkState))
760+
{
761+
// if updated (dirty), change NetVar, mark it dirty
762+
ReplNetworkState.Value = LocalNetworkState;
763+
ReplNetworkState.SetDirty(true);
764+
}
765+
*/
766+
767+
var isDirty = UpdateNetworkStateCheckDirty(ref ReplNetworkState.ValueRef, time); // todo sam diff here is Fixedtime
763768
if (isDirty)
764769
{
765770
alreadySentLastValue = false;
@@ -789,6 +794,7 @@ private void FixedUpdate()
789794

790795
if (IsServer && UseFixedUpdate)
791796
{
797+
// try to update local NetworkState
792798
DoSendToOthers(NetworkManager.LocalTime.FixedTime);
793799
}
794800

com.unity.netcode.gameobjects/Runtime/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
#if UNITY_EDITOR
44
[assembly: InternalsVisibleTo("Unity.Netcode.EditorTests")]
5-
[assembly: InternalsVisibleTo("Unity.Netcode.RuntimeTests")]
65
[assembly: InternalsVisibleTo("Unity.Netcode.Editor.CodeGen")]
76
[assembly: InternalsVisibleTo("Unity.Netcode.Editor")]
87
[assembly: InternalsVisibleTo("TestProject.EditorTests")]
98
[assembly: InternalsVisibleTo("TestProject.RuntimeTests")]
109
#endif
10+
[assembly: InternalsVisibleTo("Unity.Netcode.RuntimeTests")]

0 commit comments

Comments
 (0)