Color32という奴があるのを把握してなくて、色要素の値の指定で、毎回255で割っていた。
それらの工夫をまとめたが、素直にColor32を使った方が良いっぽい。
基本
UIクラスが保持している構造体。
保持しているクラスの参照を取得してから変更。
//using宣言は忘れないように。
using UnityEngine.UI;
//インスペクターから紐付け。
[SerializeField]
Image image;
image.color = Color.white;
アルファ値
アルファ値は、0に近い程、透過。
1.0f(255)で完全不透明。
- 0:透明
- 1.0f(255):不透明
Colorの色要素を0~255で指定
Colorの各色要素の値は、正規化されており、0~1.0fの間で設定しなくてはならない。
インスペクターの色設定の値を参考にしつつ決定する場合、以下のパターンが考えられる。
Color32を使う
Colorと互換性がある為、暗黙的に変換される。
image.color = new Color32(255, 255, 255, 255);
Colorの宣言時に工夫する
色要素の値を0~255で記述した後、255で割る。
intとして扱われると、想定と違う色になるので、明示的にfloatにする。
//山吹色
image.color = new Color(248.0f / 255.0f, 181.0f / 255.0f, 0, 1.0f);