예제 #1
0
        static void CreateUiScript()
        {
            if (Selection.activeGameObject == null)
            {
                EditorUtility.DisplayDialog("错误", "当前未选中UI", "确认");
                return;
            }

            rootGameObject = Selection.activeGameObject.gameObject;
            NewUiNode      = AutoGenerateLua.CreateNewUiNode(rootGameObject.transform);
            string className = AutoGenerateLua.GetClassName(rootGameObject.name);
            string sceneName = rootGameObject.name;

            OpenWindow(sceneName, className, NewUiNode);
        }
예제 #2
0
        private void OnGUI()
        {
            if (ShowUiNode != null)
            {
                GUILayout.BeginHorizontal();
                {
                    GUILayout.Label("子UI:", GUILayout.Width(30));
                    IsChildUi = GUILayout.Toggle(IsChildUi, "", GUILayout.Width(50));
                    GUILayout.Space(20);

                    if (IsChildUi)
                    {
                        GUILayout.Label("父UI名称:", GUILayout.Width(80));
                        ParentUiName = EditorGUILayout.TextField(ParentUiName, GUILayout.Width(200));
                    }
                }
                GUILayout.EndHorizontal();

                GUILayout.Space(20);

                using (GUILayout.ScrollViewScope s = new GUILayout.ScrollViewScope(scroll, GUILayout.ExpandHeight(true)))
                {
                    scroll = s.scrollPosition;
                    DrawUiNode(ShowUiNode);
                }

                using (new GUILayout.HorizontalScope("AnimationEventBackground", GUILayout.Height(35)))
                {
                    if (GUILayout.Button("保存"))
                    {
                        if (!IsChildUi)
                        {
                            ParentUiName = null;
                        }

                        if (IsChildUi && string.IsNullOrEmpty(ParentUiName))
                        {
                            EditorUtility.DisplayDialog("警告", "请填写父UI名字", "确定");
                            return;
                        }

                        if (IsChildUi && !ShowUiNode.Name.StartsWith("Ui"))
                        {
                            EditorUtility.DisplayDialog("警告", "子UI的前缀必须为Ui 如:UiXXXX", "确定");
                            return;
                        }

                        SaveCacheData(ClassName, new UiJson()
                        {
                            SaveDirName = SaveDirName,
                            UiNodeData  = ShowUiNode,
                            IsChildUi   = IsChildUi,
                            ParentName  = ParentUiName
                        });
                        AutoGenerateLua.HandlerPrefab(rootGameObject);
                        AutoGenerateLua.HandlerUiNode(ParentUiName, IsChildUiSetGameObject, SaveDirName, ShowUiNode);

                        Instance.Close();
                    }

                    if (GUILayout.Button("重置"))
                    {
                        RefreshShowUiNode();
                    }

                    if (GUILayout.Button("清空"))
                    {
                        ShowUiNode = new UiNode {
                        };
                        CheckUiNode(null, ShowUiNode, NewUiNode);
                    }
                }
            }
        }