Skip to content

Commit c81cf51

Browse files
authored
refactor: Made editor serialized paths strongly typed (#606)
1 parent 23dbca1 commit c81cf51

File tree

1 file changed

+59
-58
lines changed

1 file changed

+59
-58
lines changed

com.unity.multiplayer.mlapi/Editor/NetworkManagerEditor.cs

Lines changed: 59 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using UnityEngine;
66
using UnityEditorInternal;
77
using MLAPI;
8+
using MLAPI.Configuration;
89
using MLAPI.Transports;
910

1011
[CustomEditor(typeof(NetworkManager), true)]
@@ -90,35 +91,35 @@ private void Init()
9091
m_NetworkManager = (NetworkManager)target;
9192

9293
// Base properties
93-
m_DontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy");
94-
m_RunInBackgroundProperty = serializedObject.FindProperty("RunInBackground");
95-
m_LogLevelProperty = serializedObject.FindProperty("LogLevel");
96-
m_NetworkConfigProperty = serializedObject.FindProperty("NetworkConfig");
94+
m_DontDestroyOnLoadProperty = serializedObject.FindProperty(nameof(NetworkManager.DontDestroy));
95+
m_RunInBackgroundProperty = serializedObject.FindProperty(nameof(NetworkManager.RunInBackground));
96+
m_LogLevelProperty = serializedObject.FindProperty(nameof(NetworkManager.LogLevel));
97+
m_NetworkConfigProperty = serializedObject.FindProperty(nameof(NetworkManager.NetworkConfig));
9798

9899
// NetworkConfig properties
99-
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative("ProtocolVersion");
100-
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative("AllowRuntimeSceneChanges");
101-
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkTransport");
102-
m_ReceiveTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative("ReceiveTickrate");
103-
m_MaxReceiveEventsPerTickRateProperty = m_NetworkConfigProperty.FindPropertyRelative("MaxReceiveEventsPerTickRate");
104-
m_EventTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative("EventTickrate");
105-
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout");
106-
m_ConnectionApprovalProperty = m_NetworkConfigProperty.FindPropertyRelative("ConnectionApproval");
107-
m_SecondsHistoryProperty = m_NetworkConfigProperty.FindPropertyRelative("SecondsHistory");
108-
m_EnableTimeResyncProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableTimeResync");
109-
m_TimeResyncIntervalProperty = m_NetworkConfigProperty.FindPropertyRelative("TimeResyncInterval");
110-
m_EnableNetworkVariableProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableNetworkVariable");
111-
m_EnsureNetworkVariableLengthSafetyProperty = m_NetworkConfigProperty.FindPropertyRelative("EnsureNetworkVariableLengthSafety");
112-
m_CreatePlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative("CreatePlayerPrefab");
113-
m_ForceSamePrefabsProperty = m_NetworkConfigProperty.FindPropertyRelative("ForceSamePrefabs");
114-
m_UsePrefabSyncProperty = m_NetworkConfigProperty.FindPropertyRelative("UsePrefabSync");
115-
m_EnableSceneManagementProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableSceneManagement");
116-
m_RecycleNetworkIdsProperty = m_NetworkConfigProperty.FindPropertyRelative("RecycleNetworkIds");
117-
m_NetworkIdRecycleDelayProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkIdRecycleDelay");
118-
m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative("RpcHashSize");
119-
m_LoadSceneTimeOutProperty = m_NetworkConfigProperty.FindPropertyRelative("LoadSceneTimeOut");
120-
m_EnableMessageBufferingProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableMessageBuffering");
121-
m_MessageBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("MessageBufferTimeout");
100+
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ProtocolVersion));
101+
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.AllowRuntimeSceneChanges));
102+
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.NetworkTransport));
103+
m_ReceiveTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ReceiveTickrate));
104+
m_MaxReceiveEventsPerTickRateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.MaxReceiveEventsPerTickRate));
105+
m_EventTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EventTickrate));
106+
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ClientConnectionBufferTimeout));
107+
m_ConnectionApprovalProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ConnectionApproval));
108+
m_SecondsHistoryProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.SecondsHistory));
109+
m_EnableTimeResyncProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableTimeResync));
110+
m_TimeResyncIntervalProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.TimeResyncInterval));
111+
m_EnableNetworkVariableProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableNetworkVariable));
112+
m_EnsureNetworkVariableLengthSafetyProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnsureNetworkVariableLengthSafety));
113+
m_CreatePlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.CreatePlayerPrefab));
114+
m_ForceSamePrefabsProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ForceSamePrefabs));
115+
m_UsePrefabSyncProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.UsePrefabSync));
116+
m_EnableSceneManagementProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableSceneManagement));
117+
m_RecycleNetworkIdsProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.RecycleNetworkIds));
118+
m_NetworkIdRecycleDelayProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.NetworkIdRecycleDelay));
119+
m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.RpcHashSize));
120+
m_LoadSceneTimeOutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.LoadSceneTimeOut));
121+
m_EnableMessageBufferingProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableMessageBuffering));
122+
m_MessageBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.MessageBufferTimeout));
122123

123124

124125
ReloadTransports();
@@ -127,40 +128,40 @@ private void Init()
127128
private void CheckNullProperties()
128129
{
129130
// Base properties
130-
m_DontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy");
131-
m_RunInBackgroundProperty = serializedObject.FindProperty("RunInBackground");
132-
m_LogLevelProperty = serializedObject.FindProperty("LogLevel");
133-
m_NetworkConfigProperty = serializedObject.FindProperty("NetworkConfig");
131+
m_DontDestroyOnLoadProperty = serializedObject.FindProperty(nameof(NetworkManager.DontDestroy));
132+
m_RunInBackgroundProperty = serializedObject.FindProperty(nameof(NetworkManager.RunInBackground));
133+
m_LogLevelProperty = serializedObject.FindProperty(nameof(NetworkManager.LogLevel));
134+
m_NetworkConfigProperty = serializedObject.FindProperty(nameof(NetworkManager.NetworkConfig));
134135

135136
// NetworkConfig properties
136-
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative("ProtocolVersion");
137-
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative("AllowRuntimeSceneChanges");
138-
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkTransport");
139-
m_ReceiveTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative("ReceiveTickrate");
140-
m_MaxReceiveEventsPerTickRateProperty = m_NetworkConfigProperty.FindPropertyRelative("MaxReceiveEventsPerTickRate");
141-
m_EventTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative("EventTickrate");
142-
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout");
143-
m_ConnectionApprovalProperty = m_NetworkConfigProperty.FindPropertyRelative("ConnectionApproval");
144-
m_SecondsHistoryProperty = m_NetworkConfigProperty.FindPropertyRelative("SecondsHistory");
145-
m_EnableTimeResyncProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableTimeResync");
146-
m_TimeResyncIntervalProperty = m_NetworkConfigProperty.FindPropertyRelative("TimeResyncInterval");
147-
m_EnableNetworkVariableProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableNetworkVariable");
148-
m_EnsureNetworkVariableLengthSafetyProperty = m_NetworkConfigProperty.FindPropertyRelative("EnsureNetworkVariableLengthSafety");
149-
m_CreatePlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative("CreatePlayerPrefab");
150-
m_ForceSamePrefabsProperty = m_NetworkConfigProperty.FindPropertyRelative("ForceSamePrefabs");
151-
m_UsePrefabSyncProperty = m_NetworkConfigProperty.FindPropertyRelative("UsePrefabSync");
152-
m_EnableSceneManagementProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableSceneManagement");
153-
m_RecycleNetworkIdsProperty = m_NetworkConfigProperty.FindPropertyRelative("RecycleNetworkIds");
154-
m_NetworkIdRecycleDelayProperty = m_NetworkConfigProperty.FindPropertyRelative("NetworkIdRecycleDelay");
155-
m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative("RpcHashSize");
156-
m_LoadSceneTimeOutProperty = m_NetworkConfigProperty.FindPropertyRelative("LoadSceneTimeOut");
157-
m_EnableMessageBufferingProperty = m_NetworkConfigProperty.FindPropertyRelative("EnableMessageBuffering");
158-
m_MessageBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative("MessageBufferTimeout");
137+
m_ProtocolVersionProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ProtocolVersion));
138+
m_AllowRuntimeSceneChangesProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.AllowRuntimeSceneChanges));
139+
m_NetworkTransportProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.NetworkTransport));
140+
m_ReceiveTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ReceiveTickrate));
141+
m_MaxReceiveEventsPerTickRateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.MaxReceiveEventsPerTickRate));
142+
m_EventTickrateProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EventTickrate));
143+
m_ClientConnectionBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ClientConnectionBufferTimeout));
144+
m_ConnectionApprovalProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ConnectionApproval));
145+
m_SecondsHistoryProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.SecondsHistory));
146+
m_EnableTimeResyncProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableTimeResync));
147+
m_TimeResyncIntervalProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.TimeResyncInterval));
148+
m_EnableNetworkVariableProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableNetworkVariable));
149+
m_EnsureNetworkVariableLengthSafetyProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnsureNetworkVariableLengthSafety));
150+
m_CreatePlayerPrefabProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.CreatePlayerPrefab));
151+
m_ForceSamePrefabsProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.ForceSamePrefabs));
152+
m_UsePrefabSyncProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.UsePrefabSync));
153+
m_EnableSceneManagementProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableSceneManagement));
154+
m_RecycleNetworkIdsProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.RecycleNetworkIds));
155+
m_NetworkIdRecycleDelayProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.NetworkIdRecycleDelay));
156+
m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.RpcHashSize));
157+
m_LoadSceneTimeOutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.LoadSceneTimeOut));
158+
m_EnableMessageBufferingProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.EnableMessageBuffering));
159+
m_MessageBufferTimeoutProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.MessageBufferTimeout));
159160
}
160161

161162
private void OnEnable()
162163
{
163-
m_NetworkPrefabsList = new ReorderableList(serializedObject, serializedObject.FindProperty("NetworkConfig").FindPropertyRelative("NetworkPrefabs"), true, true, true, true);
164+
m_NetworkPrefabsList = new ReorderableList(serializedObject, serializedObject.FindProperty(nameof(NetworkManager.NetworkConfig)).FindPropertyRelative(nameof(NetworkConfig.NetworkPrefabs)), true, true, true, true);
164165
m_NetworkPrefabsList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) =>
165166
{
166167
var element = m_NetworkPrefabsList.serializedProperty.GetArrayElementAtIndex(index);
@@ -171,7 +172,7 @@ private void OnEnable()
171172

172173
EditorGUI.LabelField(new Rect(rect.x, rect.y, firstLabelWidth, EditorGUIUtility.singleLineHeight), "Prefab");
173174
EditorGUI.PropertyField(new Rect(rect.x + firstLabelWidth, rect.y, rect.width - firstLabelWidth - secondLabelWidth - secondFieldWidth - reduceFirstWidth,
174-
EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("Prefab"), GUIContent.none);
175+
EditorGUIUtility.singleLineHeight), element.FindPropertyRelative(nameof(NetworkPrefab.Prefab)), GUIContent.none);
175176

176177
EditorGUI.LabelField(new Rect(rect.width - secondLabelWidth - secondFieldWidth, rect.y, secondLabelWidth, EditorGUIUtility.singleLineHeight), "Default Player Prefab");
177178

@@ -189,14 +190,14 @@ private void OnEnable()
189190
using (new EditorGUI.DisabledScope(playerPrefabIndex != -1 && playerPrefabIndex != index))
190191
{
191192
EditorGUI.PropertyField(new Rect(rect.width - secondFieldWidth, rect.y, secondFieldWidth,
192-
EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("PlayerPrefab"), GUIContent.none);
193+
EditorGUIUtility.singleLineHeight), element.FindPropertyRelative(nameof(NetworkPrefab.PlayerPrefab)), GUIContent.none);
193194
}
194195
};
195196

196197
m_NetworkPrefabsList.drawHeaderCallback = (Rect rect) => { EditorGUI.LabelField(rect, "NetworkPrefabs"); };
197198

198199

199-
m_RegisteredScenesList = new ReorderableList(serializedObject, serializedObject.FindProperty("NetworkConfig").FindPropertyRelative("RegisteredScenes"), true, true, true, true);
200+
m_RegisteredScenesList = new ReorderableList(serializedObject, serializedObject.FindProperty(nameof(NetworkManager.NetworkConfig)).FindPropertyRelative(nameof(NetworkConfig.RegisteredScenes)), true, true, true, true);
200201
m_RegisteredScenesList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) =>
201202
{
202203
var element = m_RegisteredScenesList.serializedProperty.GetArrayElementAtIndex(index);

0 commit comments

Comments
 (0)