public override void OnInspectorGUI() { DrawDefaultInspector(); ECSUIScreen screen = (ECSUIScreen)target; if (GUILayout.Button("Collect extensions")) { SerializedProperty prop = serializedObject.FindProperty("_extensions"); AUIEntity[] ext = CollectExtensions(screen); prop.ClearArray(); for (int i = 0; i < ext.Length; i++) { prop.InsertArrayElementAtIndex(i); prop.GetArrayElementAtIndex(i).objectReferenceValue = ext[i]; } } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Screen switch chain setup"); _showChainList.DoLayoutList(); if (GUILayout.Button(_reverseHide ? "Custom hide chain" : "Reverse show chain at hide")) { _reverseHide = !_reverseHide; if (_reverseHide == false) { _screen.HideSwitchersChain = new List <AScreenSwitcher>(); } UpdateHideChainReverse(); } if (!_reverseHide) { EditorGUILayout.Space(); _hideChainList.DoLayoutList(); } serializedObject.ApplyModifiedProperties(); if (EditorApplication.isPlaying && GUILayout.Button("ShowScreen")) { screen.ShowSelf(); } }
private AUIEntity[] CollectExtensions(ECSUIScreen screen) { List <AUIEntity> extensions = CollectRecursive(screen.transform, new List <AUIEntity>()); return(extensions.ToArray()); }