Unity转Base64
时间: 2025-03-12 19:16:34 浏览: 50
### Unity 中将图片或字符串转为 Base64 编码
在 Unity 中,可以利用 `System.Convert` 类中的静态方法来处理 Base64 编码和解码操作。
#### 图片转换为 Base64 字符串
对于图像文件,在 Unity 中通常是作为 `Texture2D` 或者其他类型的纹理资源加载。要将其转换为 Base64 编码的字符串,首先需要获取到原始字节数组表示形式的数据,之后再调用 `Convert.ToBase64String()` 方法完成编码过程:
```csharp
// 假设有一个 Texture2D 对象 texture
byte[] bytes = texture.EncodeToPNG(); // 可选 EncodeToJPG()
string base64Str = Convert.ToBase64String(bytes);
```
这段代码会先通过 `EncodeToPNG()` 函数把 `Texture2D` 转换成 PNG 格式的字节流,然后再使用 `Convert.ToBase64String()` 把这些字节转化为 Base64 编码后的字符串[^1]。
#### 字符串转换为 Base64 字符串
如果是要对普通的字符串进行 Base64 编码,则可以直接使用 `Encoding.UTF8.GetBytes()` 来获得该字符串对应的 UTF-8 编码下的字节数组,接着同样采用 `Convert.ToBase64String()` 完成最终的编码工作:
```csharp
using System.Text;
string originalStr = "Hello World!";
byte[] strBytes = Encoding.UTF8.GetBytes(originalStr);
string encodedStr = Convert.ToBase64String(strBytes);
```
这里选择了 UTF-8 的字符集来进行编码,这是因为它是互联网上最常用的多字节字符集之一,并且能够很好地支持各种语言的文字表达。
#### 解码 Base64 字符串回原数据
当接收到一个 Base64 编码过的字符串并希望恢复其原本的内容时(无论是文本还是图像),则需反向执行上述流程——即先解析出字节数组,然后依据具体情况决定是重建字符串还是创建新的纹理对象:
```csharp
// 对于字符串的情况
byte[] decodedBytes = Convert.FromBase64String(encodedStr);
string recoveredStr = Encoding.UTF8.GetString(decodedBytes);
// 对于图像的情况 (假设是从 Base64 得到了 byte[])
Texture2D newTexture = new Texture2D(2, 2); // 初始化适当大小
newTexture.LoadImage(decodedBytes);
```
以上就是关于如何在 Unity 中实现将图片或者字符串转换为 Base64 编码的具体做法。
阅读全文
相关推荐


















