CanvasGroup
のように Graphic
のColor を書き換えずに
一括で色変更をしてみようと CanvasGroup
のコードをみたところ
ネイティブの処理で記述されているらしく同じようなものはできなかったので
とりあえず無理やり作ってみましたが微妙なやつです
using System; using UnityEngine; using UnityEngine.UI; public class GraphicColor : MonoBehaviour { [NonSerialized] private Graphic[] _graphics; #if UNITY_EDITOR private void OnValidate() { SetColor(); } #endif private void Awake() { SetColor(); } private void SetColor() { _graphics = GetComponentsInChildren<Graphic>(); foreach (var graphic in _graphics) graphic.color = _color; } [SerializeField] private Color _color; public Color Color { get => _color; set { _color = value; foreach (var graphic in _graphics) graphic.color = _color; } } }