コード例 #1
0
        protected override Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context)
        {
            var provider = context.Get <IProvider <string, IAssetInfo> >();
            var info     = provider.Get <TInfo>(id);

            return(OnUnloadAsync(info, id, asset, (TUnloadParameters)parameters, context));
        }
コード例 #2
0
 protected override void OnUnload(IAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context)
 {
     if (EnableUnload)
     {
         InternalUnload(asset);
     }
 }
コード例 #3
0
        protected override void OnUnload(string id, object asset, IAssetUnloadParameters parameters, IContext context)
        {
            var provider = context.Get <IProvider <string, IAssetInfo> >();
            var info     = provider.Get <TInfo>(id);

            OnUnload(info, id, asset, (TUnloadParameters)parameters, context);
        }
コード例 #4
0
 protected virtual void OnUnload(string id, object asset, IAssetUnloadParameters parameters)
 {
     if (Tracker.UnTrack(id, asset, out _))
     {
         Tracker.Remove(id);
         UnloadAsset(id, asset, parameters);
     }
 }
コード例 #5
0
        protected virtual Task UnloadAssetAsync(string id, object asset, IAssetUnloadParameters parameters)
        {
            IAssetLoader loader = this.GetLoaderByAsset(id);

            Task task = loader.UnloadAsync(id, asset, parameters, Context);

            return(task);
        }
コード例 #6
0
        public static void UnloadForce(this IAssetModule assetModule, string id, IAssetUnloadParameters parameters = null)
        {
            parameters ??= GetDefaultUnloadParametersByAsset(assetModule, id);

            AssetTrack   track  = assetModule.Tracker.Get(id);
            IAssetLoader loader = GetLoaderByAsset(assetModule, id);

            assetModule.Tracker.Remove(id);

            loader.Unload(id, track.Asset, parameters, assetModule.Context);
        }
コード例 #7
0
        protected virtual Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters)
        {
            if (Tracker.UnTrack(id, asset, out _))
            {
                Tracker.Remove(id);

                return(UnloadAssetAsync(id, asset, parameters));
            }

            return(Task.CompletedTask);
        }
コード例 #8
0
        public Task UnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentException("Value cannot be null or empty.", nameof(id));
            }
            if (asset == null)
            {
                throw new ArgumentNullException(nameof(asset));
            }
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            return(OnUnloadAsync(id, asset, parameters, context));
        }
コード例 #9
0
        public async Task UnloadAsync(string id, object asset, IAssetUnloadParameters parameters)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentException("Value cannot be null or empty.", nameof(id));
            }
            if (asset == null)
            {
                throw new ArgumentNullException(nameof(asset));
            }
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            Type type = asset.GetType();

            Unloading?.Invoke(id, asset, parameters);

            await OnUnloadAsync(id, asset, parameters);

            Unloaded?.Invoke(id, type, parameters);
        }
コード例 #10
0
        protected override Task OnUnloadAsync(IAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context)
        {
            if (EnableUnload)
            {
                InternalUnload(asset);
            }

            return(Task.CompletedTask);
        }
コード例 #11
0
 protected AssetLoaderBase(IAssetLoadParameters defaultLoadParameters, IAssetUnloadParameters defaultUnloadParameters)
 {
     DefaultLoadParameters   = defaultLoadParameters ?? throw new ArgumentNullException(nameof(defaultLoadParameters));
     DefaultUnloadParameters = defaultUnloadParameters ?? throw new ArgumentNullException(nameof(defaultUnloadParameters));
 }
コード例 #12
0
        protected virtual void UnloadAsset(string id, object asset, IAssetUnloadParameters parameters)
        {
            IAssetLoader loader = this.GetLoaderByAsset(id);

            loader.Unload(id, asset, parameters, Context);
        }
コード例 #13
0
 protected abstract void OnUnload(string id, object asset, IAssetUnloadParameters parameters, IContext context);
コード例 #14
0
        public static bool TryGetDefaultUnloadParametersByAsset(this IAssetModule assetModule, string id, out IAssetUnloadParameters parameters)
        {
            if (TryGetLoaderByAsset(assetModule, id, out IAssetLoader loader))
            {
                parameters = loader.DefaultUnloadParameters;
                return(true);
            }

            parameters = null;
            return(false);
        }
コード例 #15
0
        public static void Unload(this IAssetModule assetModule, string id, object asset)
        {
            IAssetUnloadParameters parameters = GetDefaultUnloadParametersByAsset(assetModule, id);

            assetModule.Unload(id, asset, parameters);
        }
コード例 #16
0
 protected abstract Task OnUnloadAsync(string id, object asset, IAssetUnloadParameters parameters, IContext context);
コード例 #17
0
        public static Task UnloadAsync(this IAssetModule assetModule, string id, object asset)
        {
            IAssetUnloadParameters parameters = GetDefaultUnloadParametersByAsset(assetModule, id);

            return(assetModule.UnloadAsync(id, asset, parameters));
        }
コード例 #18
0
 protected AssetLoader(IAssetLoadParameters defaultLoadParameters, IAssetUnloadParameters defaultUnloadParameters) : base(defaultLoadParameters, defaultUnloadParameters)
 {
 }
コード例 #19
0
 protected override Task OnUnloadAsync(ReferencedAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context)
 {
     return(Task.CompletedTask);
 }
コード例 #20
0
 protected override void OnUnload(ReferencedAssetInfo info, string id, object asset, IAssetUnloadParameters parameters, IContext context)
 {
 }