static UnityEngine.Object[] MM_Detour(AssetBundleRequest self)
        {
            if (ResourceRedirection.TryGetAssetBundleLoadInfo(self, out var info))
            {
                UnityEngine.Object[] result;

                if (info.ResolveType == AsyncAssetLoadingResolve.ThroughAssets)
                {
                    result = info.Assets;
                }
                else
                {
                    result = _original(self);
                }

                if (!info.SkipAllPostfixes)
                {
                    ResourceRedirection.Hook_AssetLoaded_Postfix(info.Parameters, info.Bundle, ref result);
                }

                return(result);
            }
            else
            {
                return(_original(self));
            }
        }
Ejemplo n.º 2
0
        static UnityEngine.Object MM_Detour(AssetBundleRequest self)
        {
            if (ResourceRedirection.TryGetAssetBundleLoadInfo(self, out var info))
            {
                UnityEngine.Object result = null;

                if (info.ResolveType == AsyncAssetLoadingResolve.ThroughAssets)
                {
                    var assets = info.Assets;
                    if (assets != null && assets.Length > 0)
                    {
                        result = assets[0];
                    }
                }
                else
                {
                    result = _original(self);
                }

                if (!info.SkipAllPostfixes)
                {
                    ResourceRedirection.Hook_AssetLoaded_Postfix(null, null, 0, null, self, ref result);
                }

                return(result);
            }
            else
            {
                return(_original(self));
            }
        }