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 UnityEngine.Object MM_Detour(AssetBundle self) { UnityEngine.Object result = null; var parameters = new AssetLoadingParameters(null, null, AssetLoadType.LoadMainAsset); var context = ResourceRedirection.Hook_AssetLoading_Prefix(parameters, self, ref result); if (!context.SkipOriginalCall) { result = _original(self); } if (!context.SkipAllPostfixes) { ResourceRedirection.Hook_AssetLoaded_Postfix(context.Parameters, self, ref result); } return(result); }
static UnityEngine.Object MM_Detour(AssetBundle self, string name, Type type) { UnityEngine.Object result = null; var parameters = new AssetLoadingParameters(name, type, AssetLoadType.LoadNamed); var context = ResourceRedirection.Hook_AssetLoading_Prefix(parameters, self, ref result); var p = context.Parameters; if (!context.SkipOriginalCall) { result = _original(self, p.Name, p.Type); } if (!context.SkipAllPostfixes) { ResourceRedirection.Hook_AssetLoaded_Postfix(context.Parameters, self, ref result); } return(result); }