Unity在运行时将Texture2D转换成Sprite格式

发表于2018-08-19
评论0 3.5k浏览
由于Image和Button的图片要求是Sprite类型的,当有大量图片时,一个一个的操作不方便,所以考虑动态的将jpg或png图片进行转换格式。

下面就来看看在运行时,是如何将Texture2D转换成Sprite格式的。

核心方式:WWW.LoadImageIntoTexture 加载图像到纹理:http://wiki.ceeger.com/script/unityengine/classes/www/www.loadimageintotexture

这里我用一个按钮来操作:
IEnumerator Load(string path)
    {
        WWW www = new WWW(path);
        yield return www;
        if (!string.IsNullOrEmpty(www.error))
        {
            Debug.Log(www.error);
        } else{
            if (www.isDone)
            {
                Texture2D tex = new Texture2D(64, 64);
                www.LoadImageIntoTexture(tex);
                Sprite sprite = Sprite.Create(tex, new Rect(0, 0, 64, 64), Vector2.zero);
                GameObject btngo = GameObject.Find("Button");
                if (btngo)
                {
                    btngo.GetComponent<UnityEngine.UI.Image>().sprite = sprite;
                }
            }
        }
    }
调用:
StartCoroutine(Load("file://" + Application.persistentDataPath + "/Folder/File.jpg"));

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论