public void OnGUI() { _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition); EditorGUILayout.BeginVertical(); { EditorGUILayout.LabelField("Select template:"); var templates = CustomScriptTemplate.GetTemplateNames(); _selectedTemplateIndex = EditorGUILayout.Popup(_selectedTemplateIndex, templates); EditorGUILayout.LabelField("Script names (one in each line):"); _scriptsToCreate = EditorGUILayout.TextArea(_scriptsToCreate); EditorGUILayout.Separator(); if (GUILayout.Button("Create")) { if (templates.Length > 0) { var scriptNames = _scriptsToCreate.Split('\n'); foreach (var scriptName in scriptNames) { if (!string.IsNullOrEmpty(scriptName)) { CustomScriptTemplate.CreateScriptFromTemplate(GetNewScriptPath(), scriptName, templates[_selectedTemplateIndex]); } } AssetDatabase.Refresh(); Close(); } } } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }
private void OnGUI() { EditorGUILayout.LabelField("Enter script name:"); GUI.SetNextControlName("ScriptName"); _scriptName = GUILayout.TextField(_scriptName); GUI.FocusControl("ScriptName"); if (GUILayout.Button("Create")) { CustomScriptTemplate.CreateScriptFromTemplate(GetNewScriptPath(), _scriptName, "Namespaced"); AssetDatabase.Refresh(); Close(); } if (Event.current != null && Event.current.isKey) { // Return or Enter event if (Event.current.keyCode == KeyCode.Return || Event.current.keyCode == KeyCode.KeypadEnter) { CustomScriptTemplate.CreateScriptFromTemplate(GetNewScriptPath(), _scriptName, "Namespaced"); AssetDatabase.Refresh(); Close(); } // Escape event if (Event.current.keyCode == KeyCode.Escape) { Close(); } } }
private void Awake() { _templatesDirectory = CustomScriptTemplate.GetTemplatesDirectory(); _namespaceRootDirectory = CustomScriptTemplate.GetNamespaceRootDir(); _namespacePrefix = CustomScriptTemplate.GetNamespacePrefix(); }
void OnGUI() { _scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition); EditorGUILayout.BeginVertical(); { /* === TEMPLATES === */ EditorGUILayout.Separator(); EditorGUILayout.LabelField("Templates", new GUIStyle() { fontSize = 16 }); var templates = CustomScriptTemplate.GetTemplateNames(); if (templates.Length > 0) { _selectedTemplateIndex = EditorGUILayout.Popup(_selectedTemplateIndex, templates); if (templates != null && templates.Length > 0 && _readTemplate != _selectedTemplateIndex) { var selectedScriptName = templates[_selectedTemplateIndex]; _editTemplate = File.ReadAllText(GetTemplatePath(selectedScriptName)); _readTemplate = _selectedTemplateIndex; } _editTemplate = EditorGUILayout.TextArea(_editTemplate); if (GUILayout.Button("Open in editor") && templates != null && templates.Length > 0) { System.Diagnostics.Process.Start($"{Directory.GetCurrentDirectory()}/{GetTemplatePath(templates[_selectedTemplateIndex])}"); } if (GUILayout.Button("Save") && templates != null && templates.Length > 0) { File.WriteAllText(GetTemplatePath(templates[_selectedTemplateIndex]), _editTemplate); } if (GUILayout.Button("Delete") && templates != null && templates.Length > 0) { CustomScriptTemplate.DeleteTemplate(templates[_selectedTemplateIndex]); AssetDatabase.Refresh(); _selectedTemplateIndex = 0; _readTemplate = -1; _editTemplate = ""; } } else { EditorGUILayout.Separator(); EditorGUILayout.LabelField("No templates created."); EditorGUILayout.Separator(); } /* === CREATE NEW TEMPLATE === */ EditorGUILayout.Separator(); EditorGUILayout.LabelField("Create new template", new GUIStyle() { fontSize = 16 }); EditorGUILayout.LabelField("Template name:"); _createTemplateName = EditorGUILayout.TextField(_createTemplateName); if (GUILayout.Button("Create")) { CustomScriptTemplate.CreateTemplate(_createTemplateName); AssetDatabase.Refresh(); } /* === SETTINGS === */ EditorGUILayout.Separator(); EditorGUILayout.LabelField("Settings", new GUIStyle() { fontSize = 16 }); EditorGUILayout.LabelField("Templates directory (relative to Assets):"); var templatesDirectory = EditorGUILayout.TextField(_templatesDirectory); if (templatesDirectory != _templatesDirectory) { _templatesDirectory = templatesDirectory; CustomScriptTemplate.SetTemplatesDirectory(_templatesDirectory); } EditorGUILayout.LabelField("Namespace root directory (relative to Assets):"); var namespaceRootDir = EditorGUILayout.TextField(_namespaceRootDirectory); if (namespaceRootDir != _namespaceRootDirectory) { _namespaceRootDirectory = namespaceRootDir; CustomScriptTemplate.SetNamespaceRootDir(_namespaceRootDirectory); } EditorGUILayout.LabelField("Namespace prefix:"); var namespacePrefix = EditorGUILayout.TextField(_namespacePrefix); if (namespacePrefix != _namespacePrefix) { _namespacePrefix = namespacePrefix; CustomScriptTemplate.SetNamespacePrefix(_namespacePrefix); } } EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); }
private string GetTemplatePath(string templateName) { return(CustomScriptTemplate.GetTemplatePath(templateName)); }