unity动态加载外部文件夹中所有图片

一般项目中需要替换一些UI的图片时,每次都要打开源工程修改很麻烦,就想了一个动态加载外部图片资源替换打包好的exe或者webgl应用中图片的方法:

    /// <summary>
    /// 加载StreamingAssets下所有的Textures
    /// </summary>
    private void LoadTexture()
    {
        List<string> filePaths = new List<string>();
        string texType = "*.PNG|*.JPG"; //图片格式
        string[] TextureType = texType.Split('|');
        int number = 0;

        for (int i = 0; i < TextureType.Length; i++)
        {
            dirs = Directory.GetFiles(Application.streamingAssetsPath + "/Textures", TextureType[i]); //将每个图片路径存入到字典

            for (int j = 0; j < dirs.Length; j++)
            {
                filePaths.Add(dirs[j]);
            }
            number += dirs.Length;
        }
        //加载所有图片
        for (int i = 0; i < filePaths.Count; i++)
        {
            Texture2D t = new Texture2D(100, 100);
            t.LoadImage(GetTextureByte(filePaths[i]));
            allTex2D.Add(t);
        }
    }

    private static byte[] GetTextureByte(string texturepath)
    {
        FileStream files = new FileStream(texturepath, FileMode.Open);
        byte[] texByte = new byte[files.Length];
        files.Read(texByte, 0, texByte.Length);
        files.Close();
        return texByte;
    }

 如果是静态webgl的话需要用到www进行加载,动态webgl话需要用到unitywebrequset到服务器进行加载。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值