void CompleteLoad() { var location = Context as IResourceLocation; var assetPath = location == null ? string.Empty : location.InternalId; var t = typeof(TObject); if (t.IsArray) { SetResult(ResourceManagerConfig.CreateArrayResult <TObject>(AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath))); } else if (t.IsGenericType && typeof(IList <>) == t.GetGenericTypeDefinition()) { SetResult(ResourceManagerConfig.CreateListResult <TObject>(AssetDatabase.LoadAllAssetRepresentationsAtPath(assetPath))); } else { SetResult(AssetDatabase.LoadAssetAtPath(assetPath, typeof(TObject)) as TObject); } OnComplete(); }
/// <inheritdoc/> public override bool CanProvide <TObject>(IResourceLocation location) { return(base.CanProvide <TObject>(location) && ResourceManagerConfig.IsInstance <TObject, Texture2D>()); }
/// <inheritdoc/> public bool CanProvideInstance <TObject>(IResourceProvider loadProvider, IResourceLocation location) where TObject : Object { return(loadProvider != null && loadProvider.CanProvide <TObject>(location) && ResourceManagerConfig.IsInstance <TObject, GameObject>()); }
/// <inheritdoc/> public override IAsyncOperation <TObject> Provide <TObject>(IResourceLocation location, IAsyncOperation <IList <object> > loadDependencyOperation) { if (location == null) { throw new ArgumentNullException("location"); } var t = typeof(TObject); if (t.IsArray) { return(new CompletedOperation <TObject>().Start(location, location.InternalId, ResourceManagerConfig.CreateArrayResult <TObject>(Resources.LoadAll(location.InternalId, t.GetElementType())))); } if (t.IsGenericType && typeof(IList <>) == t.GetGenericTypeDefinition()) { return(new CompletedOperation <TObject>().Start(location, location.InternalId, ResourceManagerConfig.CreateListResult <TObject>(Resources.LoadAll(location.InternalId, t.GetGenericArguments()[0])))); } return(AsyncOperationCache.Instance.Acquire <InternalOp <TObject> >().StartOp(location)); }