第五章 颜色映射与职业动画
六 颜色组编辑器(EditorWindow)
每次导入进素材还要把颜色一个一个的输入进去,是不是很麻烦?这一节我们来解决这个问题,更方便的编辑我们的颜色组。
1 自动填充贴图颜色(ColorChartEditor.cs)
首先,创建ColorChartEditor.cs:
using UnityEditor; using UnityEngine; namespace DR.Book.SRPG_Dev.ColorPalette { [CanEditMultipleObjects] [CustomEditor(typeof(ColorChart))] public class ColorChartEditor : Editor { public ColorChart chart { get { return target as ColorChart; } } public override void OnInspectorGUI() { DrawDefaultInspector(); // TODO 自动填充贴图颜色 } } }
同样的,我们并不需要自定义Inspector面板,而只是需要一个自动获取贴图颜色的方法。
其次,要获取贴图的颜色,首先得先获取贴图。我们用一个按钮,来获取贴图并获取颜色:
if (GUILayout.Button("Load Colors From Texture")) { string path = EditorUtility.OpenFilePanelWithFilters("Create Chart", "Assets", new string[] { "PNG Image", "png", "JPG Image", "jpg", "GIF Image", "gif" }); if (!string.IsNullOrEmpty(path) && path.Contains(Application.dataPath)) { path = path.Replace(Application.dataPath, "Assets"); Texture2D texture = AssetDatabase.LoadAssetAtPath<Texture2D>(path); // TODO 获取贴图颜色 } }
最后,我们在ColorChart.cs中完成获取贴图颜色的方法,Texture需要设置成可读: