Version: 2021.3
Bind a custom control to custom data type
Manage UI asset references from C# scripts

ViewData 持久性

ViewData API 可解决以下问题:具有特定于 UI 的状态、不是数据的一部分、 在域重新加载后仍存在和 Editor 重新启动。思路是在每个 EditorWindow 上有一个持久数据存储。每个 VisualElement 都有 一个 viewDataKey,必须设置它才能启用 ViewData 持久性。

用法

要为支持视图数据持久性的元素启用视图数据持久性,请将 viewDataKey 设置为 EditorWindow 中的唯一键。

只要元素具有有效的 viewDataKey,就可启用视图数据持久性。唯一的例外是一个元素位于其父级的阴影树(而不是其逻辑父级的 contentContainer 的物理子项)中的时候。在此情况下,父级必须为其阴影树中的子项设置自己的 viewDataKey 才会具有持久性。

例如,在 ScrollView 中,每个滚动条都有自己的 viewDataKey,它在 ScrollView 元素中是唯一的。ScrollView 没有设置键时, 滚动条不会具有持久性。否则,滚动条会将其 viewDataKey 与父级 viewDataKey 组合起来以创建唯一全局键。

Bind a custom control to custom data type
Manage UI asset references from C# scripts