static AssetDeleteResult OnWillDeleteAsset(string assetPath, RemoveAssetOptions options)
        {
            AssetDeleteResult finalResult = AssetDeleteResult.DidNotDelete;

            foreach (var assetModificationProcessorClass in AssetModificationProcessors)
            {
                MethodInfo method = assetModificationProcessorClass.GetMethod("OnWillDeleteAsset", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
                if (method != null)
                {
                    object[] args = { assetPath, options };
                    if (!CheckArgumentsAndReturnType(args, method, finalResult.GetType()))
                    {
                        continue;
                    }

                    finalResult |= (AssetDeleteResult)method.Invoke(null, args);
                }
            }

            if (finalResult != AssetDeleteResult.DidNotDelete)
            {
                return(finalResult);
            }

            finalResult = AssetModificationHook.OnWillDeleteAsset(assetPath, options);

            return(finalResult);
        }
Пример #2
0
        private static AssetDeleteResult OnWillDeleteAsset(string assetPath, RemoveAssetOptions options)
        {
            AssetDeleteResult assetDeleteResult = AssetDeleteResult.DidNotDelete;

            if (!InternalEditorUtility.HasTeamLicense())
            {
                return(assetDeleteResult);
            }
            foreach (Type current in AssetModificationProcessorInternal.AssetModificationProcessors)
            {
                MethodInfo method = current.GetMethod("OnWillDeleteAsset", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
                if (method != null)
                {
                    AssetModificationProcessorInternal.RequireTeamLicense();
                    object[] array = new object[]
                    {
                        assetPath,
                        options
                    };
                    if (AssetModificationProcessorInternal.CheckArgumentsAndReturnType(array, method, assetDeleteResult.GetType()))
                    {
                        assetDeleteResult |= (AssetDeleteResult)((int)method.Invoke(null, array));
                    }
                }
            }
            if (assetDeleteResult != AssetDeleteResult.DidNotDelete)
            {
                return(assetDeleteResult);
            }
            assetDeleteResult = AssetModificationHook.OnWillDeleteAsset(assetPath, options);
            return(assetDeleteResult);
        }
        private static AssetDeleteResult OnWillDeleteAsset(string assetPath, RemoveAssetOptions options)
        {
            AssetDeleteResult didNotDelete = AssetDeleteResult.DidNotDelete;

            if (!InternalEditorUtility.HasTeamLicense())
            {
                return(didNotDelete);
            }
            foreach (System.Type type in AssetModificationProcessors)
            {
                MethodInfo method = type.GetMethod("OnWillDeleteAsset", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
                if (method != null)
                {
                    RequireTeamLicense();
                    object[] args = new object[] { assetPath, options };
                    if (CheckArgumentsAndReturnType(args, method, didNotDelete.GetType()))
                    {
                        didNotDelete |= (AssetDeleteResult)method.Invoke(null, args);
                    }
                }
            }
            if (didNotDelete != AssetDeleteResult.DidNotDelete)
            {
                return(didNotDelete);
            }
            return(AssetModificationHook.OnWillDeleteAsset(assetPath, options));
        }
        private static AssetDeleteResult OnWillDeleteAsset(string assetPath, RemoveAssetOptions options)
        {
            AssetDeleteResult didNotDelete = AssetDeleteResult.DidNotDelete;

            if (!InternalEditorUtility.HasTeamLicense())
            {
                return(didNotDelete);
            }
            IEnumerator <Type> enumerator = AssetModificationProcessors.GetEnumerator();

            try
            {
                while (enumerator.MoveNext())
                {
                    MethodInfo method = enumerator.Current.GetMethod("OnWillDeleteAsset", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
                    if (method != null)
                    {
                        RequireTeamLicense();
                        object[] args = new object[] { assetPath, options };
                        if (CheckArgumentsAndReturnType(args, method, didNotDelete.GetType()))
                        {
                            didNotDelete |= (int)method.Invoke(null, args);
                        }
                    }
                }
            }
            finally
            {
                if (enumerator == null)
                {
                }
                enumerator.Dispose();
            }
            if (didNotDelete != AssetDeleteResult.DidNotDelete)
            {
                return(didNotDelete);
            }
            return(AssetModificationHook.OnWillDeleteAsset(assetPath, options));
        }