Пример #1
0
        static void AddCSharpClassTemplate(
            string friendlyName, string defaultFileName, bool editorOnly, string templateStr)
        {
            var currentDir = ZenUnityEditorUtil.ConvertFullAbsolutePathToAssetPath(
                ZenUnityEditorUtil.TryGetSelectedFolderPathInProjectsTab());

            if (editorOnly && !currentDir.Contains("/Editor"))
            {
                EditorUtility.DisplayDialog("Error",
                                            "Editor window classes must have a parent folder above them named 'Editor'.  Please create or find an Editor folder and try again", "Ok");
                return;
            }

            var absolutePath = EditorUtility.SaveFilePanel(
                "Choose name for " + friendlyName,
                currentDir,
                defaultFileName + ".cs",
                "cs");

            if (!absolutePath.ToLower().EndsWith(".cs"))
            {
                absolutePath += ".cs";
            }

            var className = Path.GetFileNameWithoutExtension(absolutePath);

            File.WriteAllText(absolutePath, templateStr.Replace("CLASS_NAME", className));

            AssetDatabase.Refresh();

            var assetPath = ZenUnityEditorUtil.ConvertFullAbsolutePathToAssetPath(absolutePath);

            EditorUtility.FocusProjectWindow();
            Selection.activeObject = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(assetPath);
        }
Пример #2
0
        public static string GetCurrentDirectoryAbsolutePathFromSelection()
        {
            var folderPath = ZenUnityEditorUtil.TryGetSelectedFolderPathInProjectsTab();

            if (folderPath != null)
            {
                return(folderPath);
            }

            var filePath = ZenUnityEditorUtil.TryGetSelectedFilePathInProjectsTab();

            if (filePath != null)
            {
                return(Path.GetDirectoryName(filePath));
            }

            return(Application.dataPath);
        }
Пример #3
0
        public static void CreateProjectContext()
        {
            var absoluteDir = ZenUnityEditorUtil.TryGetSelectedFolderPathInProjectsTab();

            if (absoluteDir == null)
            {
                EditorUtility.DisplayDialog("Error",
                                            "Could not find directory to place the '{0}.prefab' asset.  Please try again by right clicking in the desired folder within the projects pane."
                                            .Fmt(ProjectContext.ProjectContextResourcePath), "Ok");
                return;
            }

            var parentFolderName = Path.GetFileName(absoluteDir);

            if (parentFolderName != "Resources")
            {
                EditorUtility.DisplayDialog("Error",
                                            "'{0}.prefab' must be placed inside a directory named 'Resources'.  Please try again by right clicking within the Project pane in a valid Resources folder."
                                            .Fmt(ProjectContext.ProjectContextResourcePath), "Ok");
                return;
            }

            CreateProjectContextInternal(absoluteDir);
        }