# 在运行时为对象添加功能

> Use the Unity Properties API to generically discover and manipulate object properties at runtime.

可以使用 Unity Properties API 在运行时访问 .Net 对象。Properties API 位于 `Unity.Properties` 命名空间中，它使用[访问者设计模式](https://en.wikipedia.org/wiki/Visitor_pattern)在运行时访问 .Net 对象。访问者模式是一种无需修改结构本身即可向现有对象结构添加新操作的设计模式。您可以在访问者模式的基础上构建各种功能，例如序列化、数据迁移、深度数据比较和数据绑定。

Unity 属性可用于在任何给定类型上使用访问者。您可以使用 Properties API 执行以下操作：

* 创建与 Properties API 兼容的数据类型
* 为特定于域的用例开发新的属性访问者和适配器

| 主题                                                                                                                                          | 描述                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [属性包](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-bags.md)                                              | 了解属性包的概念和性能注意事项。                                                  |
| [属性访问者](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors.md)                                        | 了解属性访问者的概念和性能注意事项。                                                |
| [属性路径](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-paths.md)                                            | 了解属性路径的概念和性能注意事项。                                                 |
| [使用 `PropertyVisitor` 创建属性访问者](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors-propertyvisitor.md) | 了解如何通过示例使用 `PropertyVisitor` 基类创建属性访问者。                           |
| [使用低级 API 创建属性访问者](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors-low-level-api.md)               | 通过示例了解如何使用 `IPropertyBagVisitor` 和 `IPropertyVisitor` 接口来创建属性访问者。 |

## 其他资源##additional-resources

* [序列化](https://docs.unity3d.com/Packages/com.unity.serialization@latest)
* [运行时数据绑定](/engine/6000.0/manual/working-in-unity/uitoolkits/uielements/uie-data-binding/uie-runtime-binding.md)
