版本:Unity 6 (6000.0)
语言英语
  • C#

TypeCache.GetMethodsWithAttribute

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们会阅读我们用户建议的每项更改,并在合适的情况下进行更新。

关闭

提交失败

由于某种原因,无法提交您建议的更改。请在几分钟后<a>重试</a>。感谢您抽出宝贵时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static TypeCache.MethodCollection GetMethodsWithAttribute();

声明

public static TypeCache.MethodCollection GetMethodsWithAttribute(Type attrType);

声明

public static TypeCache.MethodCollection GetMethodsWithAttribute(string assemblyName);

声明

public static TypeCache.MethodCollection GetMethodsWithAttribute(Type attrType, string assemblyName);

参数

attrType 特性类型。
assemblyName 可选程序集名称。

返回值

MethodCollection 返回一个无序的 MethodInfo 标记有 T 特性的方法的集合。如果指定了 assemblyName,则仅返回在此程序集中定义的方法。

说明

获取一个用 T 特性标记的无序方法集合。

这种方法提供了快速访问所有从给定程序集加载或所有 Unity 域程序集及标记有特定特性的方法。标记有指定特性祖先的方法也包括在结果中。结果的顺序是不确定的。

using UnityEditor;
using System.Collections.Generic;

public class Example { static void ScanInitializeOnLoadMethods() { var extractedMethods = TypeCache.GetMethodsWithAttribute<InitializeOnLoadMethodAttribute>(); foreach (var m in extractedMethods) { if (m.IsPrivate) continue; //... }

for (int i = 0; i < extractedMethods.Count; ++i) { if (extractedMethods[i].IsPublic) continue; //... } } }

注意: 返回的 MethodCollection 是只读且线程安全的。集合中的 MethodInfo 的顺序不确定。