diff options
author | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-15 07:24:10 +0800 |
commit | e846c64d6f927879cb8a095e62d773a8d7b3c9f4 (patch) | |
tree | 7882744bbf2b6c7096ec15fb300f088c5a0807c5 /Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs | |
parent | cd12e74241678ee3c0752484d310b202187ba24c (diff) |
*ability system
Diffstat (limited to 'Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs')
-rw-r--r-- | Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs b/Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs new file mode 100644 index 00000000..10710819 --- /dev/null +++ b/Assets/Plugins/AdvancedInspector/Interface/IRuntimeAttribute.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Reflection; + +namespace AdvancedInspector +{ + /// <summary> + /// Define an attribute that stores a method name + /// Which should be turned into a delegate at runtime. + /// </summary> + public interface IRuntimeAttribute<T> : IRuntimeAttribute + { + /// <summary> + /// Invoke the internal delegates and returns the requested values. + /// T should be the same type as the Delegate return type. + /// </summary> + T Invoke(int index, object instance, object value); + } + + public interface IRuntimeAttribute + { + /// <summary> + /// Name of the MethodInfo to retrieve at runtime. + /// </summary> + string MethodName { get; } + + /// <summary> + /// Prototype template of the delegate to create + /// </summary> + Type Template { get; } + + /// <summary> + /// Prototype template for static external delegate + /// </summary> + Type TemplateStatic { get; } + + /// <summary> + /// List of delegates to invoke. + /// </summary> + List<Delegate> Delegates { get; set; } + } +}
\ No newline at end of file |