Unity 加载本地图片的方法
Unity加载本地图片有不少方法,一般使用以下这些:
1、使用System.IO下的File.ReadAllBytes方法:
//方法一
void LoadTextureFromFile1(string filePath)
{
// 创建一个Texture2D
Texture2D texture = new Texture2D(1, 1);
// 加载图片数据
byte[] imageData = File.ReadAllBytes(filePath);
// 将图片数据加载到Texture2D对象中
texture.LoadImage(imageData);
// 创建一个新的材质
Material material = new Material(Shader.Find("Standard"));
// 将加载的纹理应用到材质上
material.mainTexture = texture;
// 将材质应用到游戏对象上
render1.material = material;
}
2、 使用System.IO下的数据流FileStream加载
//方法二
void LoadTextureFromFile2(string filePath)
{
//创建数据流并加载图片
FileStream files = new FileStream(filePath, FileMode.Open);
byte[] imgByte = new byte[files.Length];
files.Read(imgByte, 0, imgByte.Length);
files.Close();
Texture2D texture = new Texture2D(1, 1);
texture.LoadImage(imgByte);
Material material = new Material(Shader.Find("Standard"));
material.mainTexture = texture;
render2.material = material;
}
3、使用www类:
//方法三
IEnumerator LoadTextureFromFile3(string filePath)
{
// 创建一个WWW对象并加载本地图片
WWW www = new WWW(filePath);
yield return www;
if (string.IsNullOrEmpty(www.error))
{
// 获取加载的纹理
Texture2D texture = www.texture;
image1.texture = texture;
}
else
{
Debug.LogError("下载失败:" + www.error);
}
}
4、由于www类在新版中已经过时了,所以在新版Unity中我们可以使用UnityWebRequest类加载本地图片:
//方法四
IEnumerator LoadTextureFromFile4(string filePath)
{
// 创建一个UnityWebRequest对象并加载本地图片
UnityWebRequest www = UnityWebRequestTexture.GetTexture(filePath);
yield return www.SendWebRequest();
if (www.result == UnityWebRequest.Result.Success)
{
// 获取加载的纹理
Texture2D texture = DownloadHandlerTexture.GetContent(www);
image2.texture = texture;
}
else
{
Debug.LogError("下载失败:" + www.error);
}
}
加载效果如下:Unity分别用4种方法加载本地图片_哔哩哔哩_bilibili