unity中Dictionary使用笔记

字典的应用以及在unity上序列化显示

public enum ColorType    //枚举类型
    {
        YELLOW,
        PURPLE,
        RED,
        BLUE,
        GREEN,
        PINK,
    }
  //定义名为colorDic的字典,<>内存放两种类型,表示两者为一一对应关系
private Dictionary<ColorType,Sprite> colorDic;

对于字典的赋值,采用先设置一个结构体数组,在inspector上手动将sprite和color匹配起来,最后把结构体数组的内容加到字典中


[System.Serializable]           //在unity面板上序列化显示
    public struct colorSprite   //写成结构体的形式
    {
        public ColorType color;
        public Sprite sprite;
    }
    public colorSprite[] colorSprites;  //结构体数组

此时unity面板上显示,size是自己设置,选择颜色并将相应素材拖入Sprite中(对结构体数组赋值)
在这里插入图片描述
在unity里设置添加成功后,将结构体数组中的元素压入字典中 (注意下面的代码要写在函数里

   //实例化字典
  colorDic = new Dictionary<ColorType, Sprite>();      
    for(int i=0;i<colorSprites.Length;i++) 
    {
       //字典中是否有了此种颜色
        if(!colorDic.ContainsKey(colorSprites[i].color))
        {
            colorDic.Add(colorSprites[i].color,colorSprites[i].sprite);
            //压入字典中
        }
    }`

猜你喜欢

转载自blog.csdn.net/qq_43666766/article/details/104296518
今日推荐