複数色の GUIStyle
を使いまわしたいときに
キャッシュして利用したいので、キャッシュ用クラスを作成してみました
using System.Collections.Generic; using UnityEditor; using UnityEngine; public static class ColorLabel { private static Dictionary<Color, GUIStyle> _dic = new Dictionary<Color, GUIStyle>(); internal static GUIStyle Get(Color color) { if (!_dic.ContainsKey(color)) { var style = new GUIStyle(EditorStyles.label); style.normal.textColor = color; _dic.Add(color, style); } return _dic[color]; } }
使い方
LabelField等 GUIStyle
を利用するものに対して指定しれあげれば使えます
EditorGUILayout.LabelField("Red", ColorLabel.Get(Color.red)); EditorGUILayout.LabelField("Yellow", ColorLabel.Get(Color.yellow));