Version: 2022.2
言語: 日本語
カスタムコントロールをカスタムデータ型にバインドする
ランタイム UI のサポート

ビューデータの永続性

ビューデータの永続性は、UI のビジュアル要素に関連付けられたビューデータを保持します。ビューデータとは、UI の基礎となるデータモデルの一部ではないユーザーインターフェースの状態を指します。例えば、ビューデータには、スクロールバーのスクロール位置やリストの選択などが含まれます。

ビューデータの永続性は、エディターの特定のイベント中に UI ビューデータが保持されない問題に対処します。

  • 再生モードの開始やスクリプトの変更時などのドメインの再ロード
  • エディターレイアウトの変更時などのウィンドウの終了や再起動。
  • エディター再起動

ノート: ビューデータの永続性はエディター UI でのみ機能します。

対応する要素に対してビューデータの永続化を有効にするには、エディターウィンドウで、ビューデータキーを一意の文字列 (EditorWindow 型) に設定します。UI Builder、UXML、または C# で設定できます。

  • UI Builder で、要素の Inspector パネルの Attributes セクションで View Data Key フィールドにキーを設定します。
  • UXML では、view-data-key 属性でキーを設定します。
  • C# では viewDataKey プロパティで設定します。

現在、以下のプラットフォームがビューデータ永続性をサポートしています。

ビューデータの永続性を有効にすると、これらの要素は内部ビューの状態を記憶します:

  • ScrollView は、スクロール位置を記憶します。
  • ListView は、選択を記憶します。
  • Foldout は、展開した状態を記憶します。
  • TreeView は、選択を記憶します。

読み取り専用要素 に対してビューデータの永続性を有効にするには、親要素にビューデータキーを設定します。

例えば、ScrollView には複数の読み取り専用の Scroller 子要素があります。各 Scroller には、ScrollView 要素内で一意のビューデータキーが与えられます。Foldout にビューデータキーを設定すると、Foldout はそのビューデータを保持します。Scrollers にはキーがありますが、ビューデータは永続化されません。永続性を有効にするには、親要素である ScrollView にビューデータキーを設定する必要があります。Scrollers は自分のビューデータキーと親のビューデータキーを組み合わせて、一意のグローバルビューデータキーを作成します。

ノート: 現在、ビューデータ永続性のサポートを加えるために必要な API は内部的なものであり、カスタムコントロール に対してビューデータ永続性を有効にすることはできません。

その他の参考資料

カスタムコントロールをカスタムデータ型にバインドする
ランタイム UI のサポート