static void MM_Detour(AssetBundleCreateRequest self, bool set)
 {
     if (!ResourceRedirection.TryGetAssetBundle(self, out var result))
     {
         _original(self, set);
     }
 }
Пример #2
0
        static AssetBundle MM_Detour(AssetBundleCreateRequest self)
        {
            AssetBundle bundle;

            if (ResourceRedirection.TryGetAssetBundle(self, out var info))
            {
                if (info.ResolveType == AsyncAssetBundleLoadingResolve.ThroughBundle)
                {
                    bundle = info.Bundle;
                }
                else
                {
                    bundle = _original(self);
                }
            }
            else
            {
                bundle = _original(self);
            }

            if (bundle != null && info != null && info.Path != null) // should only be null if loaded through non-hooked methods
            {
                var ext = bundle.GetOrCreateExtensionData <AssetBundleExtensionData>();
                ext.Path = info.Path;
            }

            return(bundle);
        }