MRが楽しい

MRやVRについて学習したことを書き残す

Mixed Reality Toolkit 3 パブリックプレビューのドキュメントを少しずつ読み解く データバインディングとフレームワークのテーマ化(UXComponentsのテーマ設定)

本日は Mixed Reality Toolkit 3 の調査枠です。
Mixed Reality Toolkit 3 パブリックプレビューのドキュメントを少しずつ翻訳しつつ読み進めていきます。

Mixed Reality Toolkit 3 のドキュメント

以下のドキュメントを読み進めていきます。
docs.microsoft.com

今回は「データバインディングフレームワークのテーマ化」のページの「UXComponentsのテーマ設定」に関する項目を読み進めます。
docs.microsoft.com

UXComponentsのテーマ設定

UXComponents パッケージで提供される標準の UXComponents コントロールはすべて、テーマの機能をサポートするように構成されています。
これはデフォルトではオフになっていますが、簡単に有効にできます。
各コントロール(通常はルートプレハブの最上位のゲームオブジェクト)には UXBindingConfigurator というスクリプトがあります。
このスクリプトを有効にすると、必要なデータバインディングスクリプトが取り込まれ、テーマが有効になります。
Data Binding と Theming のパッケージもインポートしてください。

TextMeshPro スタイルシートに関する注意

現在、スタイルシートを使用して TextMeshPro 標準スタイルのスタイルを設定することはできません。
TextMeshPro の既定のスタイルシートに含まれているその他のスタイルを使用できます。
サンプルシーンでは[Body]を使用してこの制限を回避しています。

DataSourceThemeProvider(データソーステーマプロバイダ)

DataSourceThemeProvider を使用すると、すべてのテーマアセットへの参照を含む ScriptableObject をデータソースとして機能させることが簡単にできるようになります。
これは UXThemingExample シーンで確認できます。

ThemeSelector(テーマセレクタ)

ThemeSelector は複数の ScriptableObject のプロファイルを指定し、簡単に切り替えることができるようにするものです。
例えば[Dark]と[Light]のテーマを簡単に切り替えられるようにすることができます。
ScriptableObject を[Theme Profiles]に追加します(通常は設計時)。
そして、実行時に[Current Theme]プロパティを変更してテーマを変更できます。

UXThemingExample シーンの利用手順の詳細は以下の記事の[データバインディングとテーマ設定のサンプルシーン]項を参照ください。
bluebirdofoz.hatenablog.com