Exemple #1
0
        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();
            }
        }
Exemple #2
0
        private AUIEntity[] CollectExtensions(ECSUIScreen screen)
        {
            List <AUIEntity> extensions = CollectRecursive(screen.transform, new List <AUIEntity>());

            return(extensions.ToArray());
        }