本日はUnityの小ネタ枠です。
UnityでGraphic参照を使って様々なコンポーネントのカラーを一括管理する方法についてです。
Graphic基本クラス
Graphicは全てのビジュアルUIコンポーネントのための基本クラスです。
Graphicクラスを参照することで様々なビジュアルコンポーネントに対して共通の処理を行えます。
docs.unity3d.com
サンプルスクリプト
参照を設定したビジュアルコンポーネントの基本カラーを一括変更する以下のサンプルスクリプトを作成しました。
・GraphicTest.cs
using UnityEngine; using UnityEngine.UI; public class GraphicTest : MonoBehaviour { [SerializeField] private Graphic[] _targetGraphicComponents; [SerializeField] private Color _enableColor = Color.white; [SerializeField] private Color _disableColor = Color.gray; [SerializeField] private bool _enable = true; // enableを変更するとInspector上で色が変わる private void OnValidate() { if (_targetGraphicComponents == null || _targetGraphicComponents.Length == 0) { return; } SetEnable(_enable); } private void SetEnable(bool enable) { foreach (var graphic in _targetGraphicComponents) { // 基本カラーを変更する graphic.color = enable ? _enableColor : _disableColor; } } }