第五章 颜色映射与职业动画
二 颜色组(Color Chart)
颜色组是保存许多颜色的一个容器,可以在Swapper中直接创建List<Color>或Color[]来表示一组颜色,但这既不利于职务分担也不利于编辑。所以,我们单独创建一个容器类ColorChart,用它来保存一组颜色,再添加必备方法,Swapper只需调用它的方法就可以了。
1 创建ColorChart.cs
为了便于编辑颜色,需要它继承自ScriptableObject。同时它还是个颜色的容器,我们让它成为迭代器,继承IEnumerable<Color>并添加索引器(Indexer)。
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace DR.Book.SRPG_Dev.ColorPalette { [Serializable] [CreateAssetMenu(fileName = "New Color Chart.asset", menuName = "SRPG/Color Chart")] public class ColorChart : ScriptableObject, IEnumerable<Color> { [SerializeField] private Color[] m_Colors = new Color[] { }; public Color this[int index] { get { return m_Colors[index]; } set { m_Colors[index] = value; } } public IEnumerator<Color> GetEnumerator() { foreach (Color color in m_Colors) { y