/// <summary> /// 构造一个 <see cref="BaseStore{T}"/>。 /// </summary> /// <param name="accessors">给定的 <see cref="IAccessorManager"/>。</param> /// <param name="idGeneratorFactory">给定的 <see cref="IIdGeneratorFactory"/>。</param> public BaseStore(IAccessorManager accessors, IIdGeneratorFactory idGeneratorFactory) { Accessors = accessors; CurrentAccessor = accessors.GetReadAccessor(); IdGeneratorFactory = idGeneratorFactory; }
void OnGUI() { if(manager == null) { Type asset = Type.GetType("AccessorManager"); if(asset == null) return; manager = (IAccessorManager) Activator.CreateInstance(asset); } GameObject gameObject = Selection.activeGameObject; if(!gameObject){ return; } TableViewerInfo viewerInfo = gameObject.GetComponent<TableViewerInfo>(); if(!viewerInfo){ return; } string folderPath = viewerInfo.folderPath; IList<ICellData> datas = new List<ICellData>(); try { foreach(string filePath in Directory.GetFiles(folderPath)) { GameObject prefab = (GameObject) AssetDatabase.LoadAssetAtPath(filePath, typeof(GameObject)); if(prefab != null) { IDataAccessor accessor = manager.GetDataAccessor(prefab); ICellData data = new PrefabData(accessor, prefab, folderPath); datas.Add (data); } } IContentProvider contentProvider = new ContentProvider(datas); viewer.ContentProvider = contentProvider; ICellProvider cellProvider = new TableCellProvider(viewerInfo.labels); viewer.CellProvider = cellProvider; viewer.OnGUI(); } catch { } }