コード例 #1
0
        public void OnGUI()
        {
            RootNamespace        = string.IsNullOrEmpty(RootNamespace) ? "Root" : RootNamespace;
            UiNamespace          = string.IsNullOrEmpty(UiNamespace) ? "View" : UiNamespace;
            ConstNamespace       = string.IsNullOrEmpty(ConstNamespace) ? "Const" : ConstNamespace;
            DataNamespace        = string.IsNullOrEmpty(DataNamespace) ? "Data" : DataNamespace;
            AutoGeneratedDirName = string.IsNullOrEmpty(AutoGeneratedDirName) ? "Auto" : AutoGeneratedDirName;
            ScriptNamespace      = string.IsNullOrEmpty(ScriptNamespace) ? "Script" : ScriptNamespace;


            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("命名空间", _style);
            RootNamespace        = EditorGUILayout.TextField("RootNamespace", RootNamespace);
            UiNamespace          = EditorGUILayout.TextField("UiNamespace", UiNamespace);
            ConstNamespace       = EditorGUILayout.TextField("ConstNamespace", ConstNamespace);
            DataNamespace        = EditorGUILayout.TextField("DataNamespace", DataNamespace);
            AutoGeneratedDirName = EditorGUILayout.TextField("AutoGeneratedDirName", AutoGeneratedDirName);
            ScriptNamespace      = EditorGUILayout.TextField("ScriptNamespace", ScriptNamespace);

            EditorGUILayout.Space();

            if (GUILayout.Button("创建相关文件夹"))
            {
                var root = Application.dataPath + "/" + RootNamespace;
                FileUtil.CreateFolder(root);
                FileUtil.CreateFolder(root + "/" + UiNamespace);
                FileUtil.CreateFolder(root + "/" + ConstNamespace);
                FileUtil.CreateFolder(root + "/" + DataNamespace);
                FileUtil.CreateFolder(root + "/" + ScriptNamespace);
                FileUtil.CreateFolder(root + "/" + "Scenes");
                FileUtil.CreateFolder(root + "/" + "Prefabs");
                AssetDatabase.Refresh();
                Debug.Log("生成完毕");
            }

            EditorGUILayout.Space();
            pos = GUILayout.BeginScrollView(pos);

            var arr = new[] { RootNamespace, UiNamespace, ConstNamespace, DataNamespace, AutoGeneratedDirName, ScriptNamespace };

            if (names.Count > 0)
            {
                index = GUILayout.Toolbar(index, names.ToArray());

                _methodInfos[index].Invoke(null, arr);
            }
            else
            {
                GUILayout.Label("没有内容。。。");
            }

            GUILayout.EndScrollView();
        }
コード例 #2
0
        private static void Create()
        {
            List <string> fileNames = new List <string>();

            FileUtil.SearchDirectory(sourDir, fileInfo =>
            {
                if (fileInfo.FullName.EndsWith(".meta"))
                {
                    return;
                }
                var pureName = Path.GetFileNameWithoutExtension(fileInfo.FullName);
                if (fileNames.Contains(pureName))
                {
                    Debug.LogError("发现同名文件:" + fileNames);
                    return;
                }
                fileNames.Add(pureName);
            }, true);

            foreach (var file in fileNames)
            {
                string parent = null;
                if (HasParentClass)
                {
                    parent = parentClass;
                    if (IsGenericParent)
                    {
                        if (IsGenericParamSelf)
                        {
                            parent += "<" + file + ">";
                        }
                        else
                        {
                            parent += "<" + GenericParam + ">";
                        }
                    }
                }
                FileUtil.CreateClassFile(file, nameSpace, generateDir, parent, partical: true);
            }

            AssetDatabase.Refresh();

            Debug.Log("生成完成");
        }
コード例 #3
0
        public void OnGUI()
        {
            UiNamespace          = string.IsNullOrEmpty(UiNamespace) ? "View" : UiNamespace;
            ConstNamespace       = string.IsNullOrEmpty(ConstNamespace) ? "Const" : ConstNamespace;
            DataNamespace        = string.IsNullOrEmpty(DataNamespace) ? "Data" : DataNamespace;
            AutoGeneratedDirName = string.IsNullOrEmpty(AutoGeneratedDirName) ? "Auto" : AutoGeneratedDirName;
            ScriptNamespace      = string.IsNullOrEmpty(ScriptNamespace) ? "Script" : ScriptNamespace;


            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.LabelField("ToolsWindow", _style);
            EditorGUI.BeginChangeCheck();
            RootNamespace = EditorGUILayout.DelayedTextField("RootNamespace", RootNamespace);
            if (EditorGUI.EndChangeCheck())
            {
                EditorPrefs.SetString(RootNamespaceKey, RootNamespace);
            }

            UiNamespace          = EditorGUILayout.TextField("UiNamespace", UiNamespace);
            ConstNamespace       = EditorGUILayout.TextField("ConstNamespace", ConstNamespace);
            DataNamespace        = EditorGUILayout.TextField("DataNamespace", DataNamespace);
            AutoGeneratedDirName = EditorGUILayout.TextField("AutoGeneratedDirName", AutoGeneratedDirName);
            ScriptNamespace      = EditorGUILayout.TextField("ScriptNamespace", ScriptNamespace);

            EditorGUILayout.Space();

            if (RootNamespace == "Root" || string.IsNullOrEmpty(RootNamespace))
            {
                EditorGUILayout.HelpBox("忘了设置命名空间了!", MessageType.Error);
                return;
            }

            if (GUILayout.Button("创建相关文件夹"))
            {
                var root = Application.dataPath + "/" + RootNamespace;
                FileUtil.CreateFolder(root);
                FileUtil.CreateFolder(root + "/" + UiNamespace);
                FileUtil.CreateFolder(root + "/" + ConstNamespace);
                FileUtil.CreateFolder(root + "/" + DataNamespace);
                FileUtil.CreateFolder(root + "/" + ScriptNamespace);
                AssetDatabase.Refresh();
                Debug.Log("生成完毕");
            }

//            if (GUILayout.Button("创建GameMgr"))
//            {
//                var go = new GameObject("GameMgr");
//                Debug.Log(RootNamespace+"."+ScriptNamespace +"." + RootNamespace + "Mgr");
//                var type = Type.GetType(RootNamespace+"."+ScriptNamespace +"." + RootNamespace + "Mgr");
//                Debug.Log(type);
//                go.AddComponent(type);
//            }

            EditorGUILayout.Space();
            pos = GUILayout.BeginScrollView(pos);

            var arr = new[] { RootNamespace, UiNamespace, ConstNamespace, DataNamespace, AutoGeneratedDirName, ScriptNamespace };

            if (names.Count > 0)
            {
                index = GUILayout.Toolbar(index, names.ToArray());

                _methodInfos[index].Invoke(null, arr);
            }
            else
            {
                GUILayout.Label("没有内容。。。");
            }

            GUILayout.EndScrollView();
        }