using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif using System.Collections; using System.Collections.Generic; using TBTK; namespace TBTK { [CreateAssetMenu(fileName = "UnitDB", menuName = "TBTK_DB/UnitDB", order = 1)] public class UnitDB : ScriptableObject { [HideInInspector] public List objList=new List(); public List unitList=new List(); public static UnitDB LoadDB(){ return Resources.Load("DB_TBTK/UnitDB", typeof(UnitDB)) as UnitDB; } #region runtime code public static UnitDB instance; public static UnitDB Init(){ if(instance!=null) return instance; instance=LoadDB(); #if UNITY_2018_3_OR_NEWER && UNITY_EDITOR instance.FillObjectList(); #endif return instance; } public static UnitDB GetDB(){ return Init(); } public static List GetList(bool verify=true){ Init(); if(verify) VerifyList(); return instance.unitList; } public static Unit 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.unitList[i].gameObject; else instance.objList.Add(instance.unitList[i].gameObject); continue; } if(i(); if(unit!=null){ instance.unitList[i]=unit; continue; } } instance.unitList.RemoveAt(i); i-=1; } while(instance.objList.Count>instance.unitList.Count) instance.objList.RemoveAt(instance.objList.Count-1); #else for(int i=0; i(); for(int i=0; i