internal void DrawEditorGUI() { if (settings == null) { return; } GUILayout.BeginVertical(); // Import Settings GUILayout.Label("Import Settings", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Space(10); GUILayout.BeginVertical(); // Excel Sheets Folder Path if (!string.IsNullOrEmpty(settings.ExcelWorkbookFilesFolderPath) && !Directory.Exists(settings.ExcelWorkbookFilesFolderPath)) { settings.ExcelWorkbookFilesFolderPath = string.Empty; } settings.ExcelWorkbookFilesFolderPath = EditorGUILayoutUtility.FolderField(new GUIContent("Excel Workbook Files Folder Path", "The folder path where to locate excel workbook files."), settings.ExcelWorkbookFilesFolderPath, "Excel Workbook Files Folder Path", string.Empty, string.Empty, LabelWidth); // Metadata Persistent Store Path var metadataPersistentStoreAbsolutePath = EditorGUILayoutUtility.FolderField(new GUIContent("Metadata Persistent Store Path", "The folder path where to store metadata."), settings.MetadataPersistentStorePath, "Metadata Persistent Store Path", settings.MetadataPersistentStorePath, string.Empty, LabelWidth); if (EditorPath.IsAssetPath(metadataPersistentStoreAbsolutePath)) { settings.MetadataPersistentStorePath = EditorPath.ConvertToAssetPath(metadataPersistentStoreAbsolutePath); } else { Debug.LogError("The 'Metadata Persistent Store Path' you choose is invalid path, please select the folder in the project!"); } // Metadata Entity Scripts Store Path var entityScriptsStoreAbsolutePath = EditorGUILayoutUtility.FolderField(new GUIContent("Entity Scripts Store Path", "The folder path where to store metadata entity scripts."), settings.EntityScriptsStorePath, "Entity Scripts Store Path", settings.EntityScriptsStorePath, string.Empty, LabelWidth); if (EditorPath.IsAssetPath(entityScriptsStoreAbsolutePath)) { settings.EntityScriptsStorePath = EditorPath.ConvertToAssetPath(entityScriptsStoreAbsolutePath); } else { Debug.LogError("The 'Entity Scripts Store Path' you choose is invalid path, please select the folder in the project!"); } // Metadata Entity Namespace using (new EditorGUIFieldScope(LabelWidth)) { settings.EntityScriptNamespace = EditorGUILayout.TextField(new GUIContent("Entity Script Namespace", "The namespace of entity script."), settings.EntityScriptNamespace); } // Metadata Entity Property Comment Row Index using (new EditorGUIFieldScope(LabelWidth)) { settings.EntityPropertyCommentRowIndex = EditorGUILayout.IntSlider(new GUIContent("Entity Property Comment Definition Row Index", "The row index of entity property comment definition."), settings.EntityPropertyCommentRowIndex, 0, MaxIntValue); } // Metadata Entity Property Type Row Index using (new EditorGUIFieldScope(LabelWidth)) { settings.EntityPropertyTypeRowIndex = EditorGUILayout.IntSlider(new GUIContent("Entity Property Type Definition Row Index", "The row index of entity property type definition."), settings.EntityPropertyTypeRowIndex, 0, MaxIntValue); } // Metadata Entity Property Name Row Index using (new EditorGUIFieldScope(LabelWidth)) { settings.EntityPropertyNameRowIndex = EditorGUILayout.IntSlider(new GUIContent("Entity Property Name Definition Row Index", "The row index of entity property name definition."), settings.EntityPropertyNameRowIndex, 0, MaxIntValue); } // Metadata Entity Property Value Starting Row Index using (new EditorGUIFieldScope(LabelWidth)) { settings.EntityDataStartingRowIndex = EditorGUILayout.IntSlider(new GUIContent("Entity Data Starting Row Index", "The row index and after will be entity data definitions."), settings.EntityDataStartingRowIndex, 0, MaxIntValue); } GUILayout.EndVertical(); GUILayout.Space(10); GUILayout.EndHorizontal(); GUILayout.Space(20); // Other Settings GUILayout.Label("Other Settings", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); GUILayout.Space(10); GUILayout.BeginVertical(); // Data encryption/decryption using (new EditorGUIFieldScope(LabelWidth)) { settings.DataEncryptionAndDecryption = EditorGUILayout.Toggle(new GUIContent("Data Encryption/Decryption", "Generate database file with encryption, and load metadata with decryption."), settings.DataEncryptionAndDecryption); } GUILayout.EndVertical(); GUILayout.Space(10); GUILayout.EndHorizontal(); GUILayout.Space(20); using (new EditorGUIFieldScope(LabelWidth)) { GUILayout.FlexibleSpace(); if (GUILayout.Button("Build Metadata Assets", GUILayout.Width(LabelWidth), GUILayout.Height(25))) { BuildAssets(); GUIUtility.ExitGUI(); } GUILayout.FlexibleSpace(); } GUILayout.Space(20); GUILayout.EndVertical(); }