如何将Texture2D和String之间进行转换
Texture2D和String之间的转换都是需要通过byte来进行作为桥梁的;
Texture2D转换为String;
Texture2D转换为byte[],然后将byte[] 转换为string
String转换为Texture2D;
String转换为byte[],然后Texture2D载入byte[]即可
演示
测试代码
using UnityEngine;
using UnityEngine.UI;
public class TestTexture : MonoBehaviour
{
[SerializeField] private RawImage leftRawImage;
[SerializeField] private RawImage rightRawImage;
[SerializeField] private Text mText;
private string textureString;
// Start is called before the first frame update
public void OnClickTextureToString()
{
Texture2D texture = leftRawImage.texture as Texture2D;
byte[] bytes = texture.EncodeToJPG();
textureString = System.Convert.ToBase64String(bytes);
mText.text = textureString;
}
public void OnClickStringToTexture()
{
Texture2D texture2D = new Texture2D(512, 512);
byte[] bytes = System.Convert.FromBase64String(textureString);
texture2D.LoadImage(bytes);
rightRawImage.texture = texture2D;
}
}
Bug可以解决不完,但疫情希望早日结束…[valaki]