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 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 string GetCurrentDirectoryAssetPathFromSelection() { return(ZenUnityEditorUtil.ConvertFullAbsolutePathToAssetPath( GetCurrentDirectoryAbsolutePathFromSelection())); }