Unity的动态添加和删除图片

1、获取StreamingAssets的Content文件夹下的所有图片精灵

public class ImageManage : MonoBehaviour
{
    List<Sprite> imageList = new List<Sprite>();   //加载的图片的列表
    Public List<Image> images = new List<Image>();

void Start()
    {
        //加载所有图片
        LoadAllPic();

        for (int i = 0; i < images.Count; i++)
        {
            int index = i;
            //当图片的数量小于生成的图片存储数组的数量,让图片存储的图片变成第一个
            if (index > imageList.Count - 1)
            {
                index = 0;
            }
            //将图片赋值到预制体上
            images[i].GetComponent<Image>().sprite = imageList[index];
        }
    }
 
#region 外部加载图片
    //外部加载图片
    void LoadAllPic()
    {
        //从StreamingAssets中加载图片
        string imgtype = "*.BMP|*.JPG|*.GIF|*.PNG";
        string[] ImageType = imgtype.Split('|');
        for (int k = 0; k < ImageType.Length; k++)
        {
            //获取streamingAssets文件夹下所有的图片路径  
            string[] dirs = Directory.GetFiles(Application.streamingAssetsPath+"/Content", ImageType[k]);
            for (int j = 0; j < dirs.Length; j++)
            {
                Texture2D tx = new Texture2D(100, 100);
                tx.LoadImage(getImageByte(dirs[j]));
                Sprite sprite = Sprite.Create(tx, new Rect(0, 0, tx.width, tx.height), new Vector2(-500, -500));
                sprite.name = Path.GetFileNameWithoutExtension(dirs[j]);
                //将获取的图片加到图片列表中
                imageList.Add(sprite);
            }
        }
    }

    private static byte[] getImageByte(string imagePath)
    {
        FileStream files = new FileStream(imagePath, FileMode.Open);
        byte[] imgByte = new byte[files.Length];
        files.Read(imgByte, 0, imgByte.Length);
        files.Close();
        return imgByte;
    }
    #endregion
}

把代码挂载在一个空物体上,再把需要图片赋值的图片放入列表中,就可实现图片精灵的导入。

2、实现图片的动态增加和删除

    //获取streamingAssets/Content里面的所有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值