Version: 6000.3
语言: 中文
酒店访客
使用 PropertyVisitor 创建属性访客

属性路径

属性路径是描述属性在容器对象中的位置的字符串。

概念

您可以使用属性路径在特定路径上获取或设置对象的数据,或者接受对象子属性上的访客。

属性路径由字符串构造,并从根对象解析特定属性实例。例如,路径foo.bar.baz[12]解析bazlist 容器中的bar容器,它嵌套在foo容器。

要创建和作属性路径,请使用Unity.Properties.PropertyPath类。

您可以使用属性路径执行以下作:

  • 获取或设置特定路径上对象的数据
  • 接受对象子属性的访客

性能注意事项

Unity.Properties.PropertyPath是一个不可变 不能更改不可变(只读)包的内容。这与可变相反。大多数包都是不可变的,包括从包注册表或通过 Git URL 下载的包。
请参阅术语表
struct 类型。从字符串构造属性路径时,将进行子字符串提取的分配。

下表列出了从字符串构造属性路径时的分配行为:

字符串 长度 分配 分配原因
"Path" 1 0 按原样使用字符串。
"Path.To" 2 2 将字符串分成两部分。
"Path.To[2]" 3 3 将字符串分成两部分并提取索引。
"Path.To[2].My" 4 4
"Path.To[2].My.Value" 5 6 为附加部件分配一个阵列。

下表列出了从部件构造属性路径时的分配行为:

字符串 长度 分配 分配原因
PropertyPath.FromName("Path") 1 0
PropertyPath.AppendName(previous, "To") 2 0
PropertyPath.AppendIndex(previous, 2) 3 0
PropertyPath.AppendName(previous, "My") 4 0
PropertyPath.AppendName(previous, "Value") 5 1 为附加部件分配一个阵列。

要优化性能并避免分配内存:

  • 在初始化例程期间初始化和缓存属性路径。
  • 组合或追加属性路径部件,而不是从字符串构造它,最多四个部分。

其他资源

酒店访客
使用 PropertyVisitor 创建属性访客