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); }
static bool ValidateInternal() { if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { var originalSceneSetup = EditorSceneManager.GetSceneManagerSetup(); try { ZenUnityEditorUtil.ValidateCurrentSceneSetup(); Log.Info("All scenes validated successfully"); return(true); } catch (Exception e) { Log.ErrorException(e); return(false); } finally { EditorSceneManager.RestoreSceneManagerSetup(originalSceneSetup); } } else { Debug.Log("Validation cancelled - All scenes must be saved first for validation to take place"); return(false); } }
static bool ValidateCurrentSceneInternal() { return(ValidateWrapper(() => { ZenUnityEditorUtil.ValidateCurrentSceneSetup(); ModestTree.Log.Info("All scenes validated successfully"); })); }
public static void ValidateAllActiveScenes() { ValidateWrapper(() => { var numValidated = ZenUnityEditorUtil.ValidateAllActiveScenes(); ModestTree.Log.Info("Validated all '{0}' active scenes successfully", numValidated); }); }
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); }
static void CreateProjectContextInternal(string absoluteDir) { var assetPath = ZenUnityEditorUtil.ConvertFullAbsolutePathToAssetPath(absoluteDir); var prefabPath = (Path.Combine(assetPath, ProjectContext.ProjectContextResourcePath) + ".prefab").Replace("\\", "/"); var emptyPrefab = PrefabUtility.CreateEmptyPrefab(prefabPath); var gameObject = new GameObject(); try { gameObject.AddComponent <ProjectContext>(); var prefabObj = PrefabUtility.ReplacePrefab(gameObject, emptyPrefab); Selection.activeObject = prefabObj; } finally { GameObject.DestroyImmediate(gameObject); } Debug.Log("Created new ProjectContext at '{0}'".Fmt(prefabPath)); }
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); }
public static string GetCurrentDirectoryAssetPathFromSelection() { return(ZenUnityEditorUtil.ConvertFullAbsolutePathToAssetPath( GetCurrentDirectoryAbsolutePathFromSelection())); }