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

TypeCache.GetFieldsWithAttribute

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。尽管我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static TypeCache.FieldInfoCollection GetFieldsWithAttribute();

声明

public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(Type attrType);

声明

public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(string assemblyName);

声明

public static TypeCache.FieldInfoCollection GetFieldsWithAttribute(Type attrType, string assemblyName);

参数

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

返回值

FieldInfoCollection 返回一个未排序的 FieldInfo 集合,其中包含标记有 T 属性的字段。如果指定了 assemblyName,则仅返回在此程序集中定义的字段。

描述

检索一个未排序的字段集合,这些字段标记有 T 属性。

此方法提供对从给定程序集或所有 Unity 域程序集加载的所有类字段的快速访问,并标记有特定属性。标记有指定属性的祖先的字段也包含在结果中。结果的顺序未定义。

using UnityEditor;
using System;
using System.Collections.Generic;

public class Example { class MyAttribute : Attribute {}

[MyAttribute] static int s_MyField;

static void ScanStaticFieldsMarkedWithMyAttribute() { var extractedFields = TypeCache.GetFieldsWithAttribute<MyAttribute>(); foreach (var fi in extractedFields) { if (!fi.IsStatic) continue; //... } } }

注意: 返回的 FieldInfoCollection 是只读且线程安全的。集合中 FieldInfo 的顺序未定义。