Godot: Theme
theme 機能は、プロジェクト全体のGUI要素に適用できるスキニングの設定
Project Settings の custom / custom font の設定で、プロジェクト内でデフォルト化することができる
https://gyazo.com/fa3b17bdf3328b1179e3372bc1387521
個別のControl ノードでは、テーマの設定を上書きしたり、別のテーマに切り替えることが可能
テーマで設定できる項目
Color
例えばフォントカラーの設定など
https://gyazo.com/72b5e2cffbb27b935181d03a01cd3e59
Constant
クラスごとに用意された定数の設定
Font
フォントリソースの指定
Font size
フォントサイズの設定
Icon
アイコンのテクスチャ
StyleBox
StyleBoxEmpty, StyleBoxFlat, StyleBoxLine, StyleBoxTexture などの スタイリングしたBoxの設定
例えば、Buttonの背景Boxの色をStyleBoxFlatの上書きで変えるなど
https://gyazo.com/251eeec1cfcf8a6d348f14db95aa2603
子クラスは親クラスのテーマ設定を自動的に採用する
子クラスに独自に定義したテーマ設定は、親クラスの設定を上書きする
buttonクラスの子クラスである checkBox クラスの font size だけ大きくして例
https://gyazo.com/8c8fab234cd9d3263114a725a30eee85
自作のControlクラスを作成した場合も、テーマ設定が可能
ローカルオーバーライド
テーマに変更を加えず、対象のノードだけに影響するテーマオーバーライドが可能
https://gyazo.com/37900d1685de916946a6fd6a39dd1d1d
BoxContainer や GridContainer などのノードでは、子ノード間の区切りを定義するためにテーマ定数を使用している
MarginContainer ではマージン値をこのオーバーライドで設定する
テーマエディターは色々便利
プレビューシーンは自分で用意してカスタマイズできる
Manage Theme Items 画面で、オーバーライドした属性だけ確認、編集できる
https://gyazo.com/ee040b0b0007c8f2a629c4c441ac246e
他の theme 設定からインポートも可能
https://gyazo.com/cbfb5e3c9f9e52aa70377df10b2c2d11