コード例 #1
0
        public override void Focus()
        {
            base.Focus();

            if (databaseCrud?.database == null)
            {
                var dbPath = EditorPrefs.GetString(databaseSaveKey);
                var db     = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(dbPath) as IDatabase <T>;
                if (db != null)
                {
                    databaseCrud = new DatabaseCollection <T>(db);
                }
            }

            ValidateItems();
        }
コード例 #2
0
        protected virtual void DrawDatabasePicker()
        {
            GUILayout.Space(40);

            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();

            EditorGUILayout.BeginVertical(GUILayout.Width(600));
            EditorGUILayout.LabelField("Select a database to edit", General2.Editors.EditorStyles.titleStyle);
            GUILayout.Space(20);

            EditorGUILayout.BeginVertical(Devdog.General2.Editors.EditorStyles.boxStyle);
            EditorGUILayout.LabelField("Found (local) databases");
            foreach (var db in GetProjectDatabases())
            {
                var asset  = db as UnityEngine.Object;
                var dbName = db.ToString();
                if (asset != null)
                {
                    dbName = AssetDatabase.GetAssetPath(asset);
                }

                if (GUILayout.Button("Select: " + dbName))
                {
                    databaseCrud = new DatabaseCollection <T>(db);
                }
            }

            EditorGUILayout.EndVertical();


            EditorGUILayout.BeginVertical(Devdog.General2.Editors.EditorStyles.boxStyle);
            EditorGUILayout.LabelField("Manual selection");

            databaseCrud          = databaseCrud ?? new DatabaseCollection <T>();
            databaseCrud.database = (IDatabase <T>)UnityEditor.EditorGUILayout.ObjectField(databaseCrud.database as UnityEngine.Object, typeof(IDatabase <T>), false);

            EditorGUILayout.EndVertical();
            EditorGUILayout.EndVertical();

            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();

            GUILayout.Space(40);
        }