Unity3d - 动态读取Multiply的Sprites

##Unity3d - 动态读取Multiply的Sprites

首先开头要引用

using System.Collections.Generic

然后要定义字典

private Dictionary spritesDictionary = new Dictionary();

定义Sprites数组

private Sprite[] sprites;

下面是读取所有Sprites的代码。

public void LoadAllSprites()
        {
            sprites = Resources.LoadAll("Path");//Path是路径,Sprite是类型,改成Sprites的目录就行。当前的目录为工程目录"Assets/Resources/Path"
            for (int i = 0; i < sprites.Length; i++)
            {
                print("sprites[" + i + "]: " + sprites[i]);
                spritesDictionary.Add(sprites[i].name, sprites[i]);
            }
        }

下面是使用的代码,根据输入的string来返回Sprites

public Sprite ReadSpritesByString(string name)
        {
            Sprite a = null;
            foreach (KeyValuePair pair in spritesDictionary)
            {
                Debug.Log(pair.Key + " " + pair.Value);
                if (pair.Key.ToString() == name)
                {
                    a = pair.Value as Sprite;
                }
            }
            return a;
        }

使用的方式就像如下这样

ABC.GetComponent().sprite = ReadSpritesByString("ABC");

你可能感兴趣的:(Unity3D)