具体逻辑:
1.写出你希望读取的文件夹的地址
2.读取这个文件夹里所有的文件名称
3.把这个文件夹里名称中和图片有关的文件名找出来
4.用代码在unity里创建一个图片
5.用加载的图片替换掉创建的这个图片,并调整大小
读取部分(1,2,3条):
void Start()
{
string[] fileName ; //建一个string存所有的名字
//获取应用里"streamingAssetsPath/0"文件夹下得文件名称
fileName = Directory.GetFiles((Application.streamingAssetsPath + "/0"));
//如果获取到了,把和图片有关的挑出来
if (fileName.Length != 0)
{
for (int i = 0; i < fileName.Length; i++)
{
//获取文件的后缀,把是图片的挑出来并加载出来
string tmp = Path.GetExtension(fileName[i]);
if (tmp == ".jpg" || tmp == ".png" || tmp == ".gif" || tmp == ".bmp")
{
StartCoroutine(ReadPictureName(fileName[i])); //加载的方法,在下文
}
}
}
}
加载图片部分(4条):
加载图片部分(5条):
//加载图片
public Image image;//在外面创建的图片拖进来
IEnumerator ReadPictureName(string url) {
//“在url这个地址下有个图片,请下载下来”这件事写成一个要求
UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
yield return request.SendWebRequest(); //把上面这个要求发出去,并等待结果
//如果下载已经完成
if (request.isDone) {
if (request.isNetworkError || request.isHttpError) //如果网络错误,或者地址错误
{
Debug.Log(request.error); //输出这个错误
}
else //如果没错
{
//建一个2D图片,把request里的图片下载下来放进去
Texture2D texture2d = DownloadHandlerTexture.GetContent(request);
//建一个sprite格式的图片,把下载下来的图片转换格式,放进去;
括号里分别是(转换的对象,转换出来的图片的坐标,和宽高,
设置物体自身的坐标原点位置,00就是左下角,0.5,0.5就是中间,1,1就是右上角)
Sprite sprite = Sprite.Create(texture2d, new Rect(0, 0, texture2d.width, texture2d.height), new Vector2(0.5f, 0.5f));
//把Image里的图片替换掉
image.sprite = sprite;
}
}
}
文章来源:https://uudwc.com/A/rX3Rv
文章来源地址https://uudwc.com/A/rX3Rv