public static Database GetDB(bool production = false) { var currentDBName = production ? DatabaseSettings.Settings.databaseName : DatabaseSettings.Settings.ViewingDatabase; if (databaseCache.ContainsKey(currentDBName) && !NeedRefresh(databaseCache[currentDBName])) { return(databaseCache[currentDBName]); } var newDb = Database.EditorLoad(production); if (newDb != null) { AddToCache(currentDBName, newDb); return(databaseCache[currentDBName]); } else { var fullPath = DatabaseSettings.GetFullPath(currentDBName); var fileExists = UnityEditor.AssetDatabase.LoadAssetAtPath <TextAsset>(fullPath); if (fileExists == null) { newDb = new Database(); Database.Save(newDb); AddToCache(currentDBName, newDb); return(databaseCache[currentDBName]); } return(null); } }