コード例 #1
0
        static UnityEngine.Object MM_Detour(AssetBundle self)
        {
            UnityEngine.Object result = null;

            var context = ResourceRedirection.Hook_AssetLoading_Prefix(null, null, AssetLoadType.LoadMainAsset, self, ref result);

            if (!context.SkipOriginalCall)
            {
                result = _original(self);
            }

            if (!context.SkipAllPostfixes)
            {
                ResourceRedirection.Hook_AssetLoaded_Postfix(null, null, AssetLoadType.LoadMainAsset, self, null, ref result);
            }

            return(result);
        }
コード例 #2
0
        static UnityEngine.Object MM_Detour(AssetBundle self, string name, Type type)
        {
            UnityEngine.Object result = null;

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

            var p = context.Parameters;

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

            if (!context.SkipAllPostfixes)
            {
                ResourceRedirection.Hook_AssetLoaded_Postfix(p.Name, p.Type, AssetLoadType.LoadNamed, self, null, ref result);
            }

            return(result);
        }
コード例 #3
0
        static UnityEngine.Object[] MM_Detour(AssetBundle self, Type type)
        {
            UnityEngine.Object[] result = null;

            var parameters = new AssetLoadingParameters(null, type, AssetLoadType.LoadByType);
            var context    = ResourceRedirection.Hook_AssetLoading_Prefix(parameters, self, ref result);

            var p = context.Parameters;

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

            if (!context.SkipAllPostfixes)
            {
                ResourceRedirection.Hook_AssetLoaded_Postfix(context.Parameters, self, ref result);
            }

            return(result);
        }