@@ -33,6 +33,8 @@ internal class SignalingManagerEditor : UnityEditor.Editor
3333
3434 private void OnEnable ( )
3535 {
36+ EditorApplication . projectChanged += OnProjectChanged ;
37+
3638 m_UseDefault = serializedObject . FindProperty ( SignalingManager . UseDefaultPropertyName ) ;
3739 m_SignalingSettingsObject = serializedObject . FindProperty ( SignalingManager . SignalingSettingsObjectPropertyName ) ;
3840 m_SignalingSettings = serializedObject . FindProperty ( SignalingManager . SignalingSettingsPropertyName ) ;
@@ -41,6 +43,11 @@ private void OnEnable()
4143 m_EvaluateCommandlineArguments = serializedObject . FindProperty ( SignalingManager . EvaluateCommandlineArgumentsPropertyName ) ;
4244 }
4345
46+ private void OnDisable ( )
47+ {
48+ EditorApplication . projectChanged -= OnProjectChanged ;
49+ }
50+
4451 public override VisualElement CreateInspectorGUI ( )
4552 {
4653 root = new VisualElement ( ) ;
@@ -72,8 +79,6 @@ public override VisualElement CreateInspectorGUI()
7279 root . Add ( new PropertyField ( m_RunOnAwake , "Run On Awake" ) ) ;
7380 root . Add ( new PropertyField ( m_EvaluateCommandlineArguments , "Evaluate Commandline Arguments" ) ) ;
7481
75- EditorApplication . projectChanged += OnProjectChanged ;
76-
7782 // Disable UI when running in Playmode
7883 EditorApplication . playModeStateChanged += OnPlayModeStateChanged ;
7984 if ( EditorApplication . isPlaying )
@@ -146,6 +151,8 @@ private void OnPlayModeStateChanged(PlayModeStateChange e)
146151
147152 private void OnProjectChanged ( )
148153 {
154+ if ( root == null )
155+ return ;
149156 var paths = GetAvailableSignalingSettingsPath ( ) ;
150157
151158 // Force to use default settings if there are no available settings in project folder.
@@ -168,7 +175,6 @@ private void OnProjectChanged()
168175 }
169176 signalingSettingsPopupField . choices = availableObjects . ToList ( ) ;
170177 signalingSettingsPopupField . index = defaultIndex ;
171-
172178 }
173179
174180 private void OnClickedOpenProjectSettingsButton ( )
0 commit comments