各 VisualElement
にはスタイルのプロパティが含まれており、backgroundColor
や borderColor
など、要素の寸法と要素が画面上でどのように描画されるかを設定します。
スタイルのプロパティは、C# かスタイルシートで設定します。スタイルプロパティは、独自のデータ構造 (IStyle
インターフェース) で再グループ化されます。
UIElements は USS (Unity スタイルシート) で書かれたスタイルシートをサポートします。USS ファイルは、HTML のカスケーディングスタイルシート (Cascading Style Sheets、CSS) からヒントを得たテキストファイルです。USS 形式は CSS に似ていますが、USS は Unity でうまく動作するためのオーバーライドとカスタマイズが含まれています。
ここでは、USS とその構文、CSS と比較した違いの詳細を説明しています。
Unity スタイルシート (USS) の基本的な事項は以下の通りです。
.uss
拡張子が必要です。スタイルルールの一般的な構文は下のとおりです。
selector {
property1:value;
property2:value;
}
USS 構文は CSS3 の W3C 仕様にマッチします。UIElements は ExCSS オープンソースパーサー を使用して USS 宣言をパースします。ExCSS オープンソースパーサーには、独自のテストスイートがあります。
Unityスタイルシート (USS) を視覚要素に設定できます。スタイルルールは、視覚要素とすべての子孫要素に適用されます。スタイルシートは必要に応じて自動的に再適用されます。
AddStyleSheetPath()
メソッドを使用して USS を視覚要素に関連付けます。また、 AddStyleSheetPath()
メソッドに含まれているフォルダーへの相対パスを示す必要があります。Unity が USS ファイルを認識するためには、ファイルを Assets
フォルダー内の Resources
フォルダーか Editor Default Resources
フォルダーに置く必要があります。
EditorWindow
の実行中に USS ファイルを変更すると、スタイルの変更は即座に適用されます。
スタイルシートが定義されると、それを視覚要素の UIElements ツリーに適用することができます。
この処理の間、USS ファイルから適用されるプロパティを解決するためにセレクターは要素と照合されます。セレクターが要素に適合すると、要素にスタイル宣言が適用されます。
例えば、以下のルールはすべての Button
オブジェクトに適合します。
Button {
width: 200px;
}
スタイルシートを VisualElement.AddStyleSheetPath()
メソッドを使ってサブツリーにアタッチします。
UIElement は次の条件を使用して、視覚要素をそのスタイルルールと照合します。
name
プロパティ (文字列)これらの特性は、スタイルシートのセレクターで使用されます。
CSS を使い慣れているユーザーには、HTML タグ名、id
属性、class
属性と似ていることがお判りでしょう。