protected override void LoadSourceDataAsync(Action <IStaticDataDirectorySource <TData> > onLoadSuccess, LoadError onLoadFailed) { AssetBundleLoadAssetOperation request = AssetBundleManager.LoadAssetAsync(_bundleName, _path, typeof(UnityEngine.Object)); if (request == null) { onLoadFailed(new LoadException(string.Format("Failed to load source data at path {0}", _path))); return; } TaskProvider.Instance.RunTask(request, () => { Object requestResult = request.GetAsset <UnityEngine.Object>(); IStaticDataDirectorySource <TData> source = requestResult as IStaticDataDirectorySource <TData>; if (source == null) { onLoadFailed(new LoadException(string.Format("Failed to cast loaded data source at path '{0}' into source type {1} and data type {2}", _path, typeof(IStaticDataDirectorySource), typeof(TData)))); } else { onLoadSuccess(source); } }); }
public StaticDataReferenceAttribute(string path, Type filterType) { #if UNITY_EDITOR Object requestResult = AssetDatabase.LoadAssetAtPath <UnityEngine.Object>(path); IStaticDataDirectorySource source = requestResult as IStaticDataDirectorySource; IDs = source.GetIDs(filterType); #endif }
private void PopulateData(IStaticDataDirectorySource <TData> source, ref Dictionary <string, TData> dataLookup) { dataLookup = new Dictionary <string, TData>(); foreach (StaticDataEntry <TData> entry in source) { TData data = entry.Data; if (data != null) { dataLookup.Add(entry.ID, entry.Data); } } }