static AssetBundleRequest MM_Detour(AssetBundle self, string name, Type type)
        {
            AssetBundleRequest result = null;

            if (name == string.Empty)
            {
                var parameters = new AssetLoadingParameters(null, type, AssetLoadType.LoadByType);
                var context    = ResourceRedirection.Hook_AsyncAssetLoading_Prefix(parameters, self, ref result);

                var p = context.Parameters;
                if (!context.SkipOriginalCall)
                {
                    result = _original(self, name, p.Type);
                }

                ResourceRedirection.Hook_AssetLoading_Postfix(context, result);
            }
            else
            {
                var parameters = new AssetLoadingParameters(name, type, AssetLoadType.LoadNamedWithSubAssets);
                var context    = ResourceRedirection.Hook_AsyncAssetLoading_Prefix(parameters, self, ref result);

                var p = context.Parameters;
                if (!context.SkipOriginalCall)
                {
                    result = _original(self, p.Name, p.Type);
                }

                ResourceRedirection.Hook_AssetLoading_Postfix(context, result);
            }

            return(result);
        }
Esempio n. 2
0
        static AssetBundleRequest MM_Detour(AssetBundle self, string name, Type type)
        {
            AssetBundleRequest result = null;

            var context = ResourceRedirection.Hook_AsyncAssetLoading_Prefix(name, type, AssetLoadType.LoadNamed, self, ref result);

            var p = context.Parameters;

            if (!context.SkipOriginalCall)
            {
                result = _original(self, p.Name, p.Type);
            }

            ResourceRedirection.Hook_AssetLoading_Postfix(context, result);

            return(result);
        }