using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif using System.Collections; using System.Collections.Generic; using TBTK; namespace TBTK { [CreateAssetMenu(fileName = "CollectibleDB", menuName = "TBTK_DB/CollectibleDB", order = 1)] public class CollectibleDB : ScriptableObject { [HideInInspector] public List objList=new List(); public List collectibleList=new List(); public static CollectibleDB LoadDB(){ return Resources.Load("DB_TBTK/CollectibleDB", typeof(CollectibleDB)) as CollectibleDB; } #region runtime code public static CollectibleDB instance; public static CollectibleDB Init(){ if(instance!=null) return instance; instance=LoadDB(); #if UNITY_2018_3_OR_NEWER && UNITY_EDITOR instance.FillObjectList(); #endif return instance; } public static CollectibleDB GetDB(){ return Init(); } public static List GetList(bool verify=true){ Init(); if(verify) VerifyList(); return instance.collectibleList; } public static Collectible GetItem(int index){ Init(); return (index>=0 && index=0 && index GetPrefabIDList(){ Init(); List prefabIDList=new List(); for(int i=0; i=0 && indexi) instance.objList[i]=instance.collectibleList[i].gameObject; else instance.objList.Add(instance.collectibleList[i].gameObject); continue; } if(i(); if(collectible!=null){ instance.collectibleList[i]=collectible; continue; } } instance.collectibleList.RemoveAt(i); i-=1; } while(instance.objList.Count>instance.collectibleList.Count) instance.objList.RemoveAt(instance.objList.Count-1); #else for(int i=0; i(); for(int i=0; i