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); }
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); }