public class AnatomyLeftRight : MonoBehaviour
{
public Text TopText;//顶层动物名字
public Button LeftBtn;//前一页
public Button RightBtn;//后一页
public Text NowText;//当前图片
public Text SumText;//总数
public Image image;//图片
public Slider sliderLine;
public Text CountText;
public Text StartText;
public Text DescribeText;
public Text EndText;
public int Sum;
public int NowCount;
public List<Sprite> spriteList;
private int currentImageIndex = 0; // 当前显示的图片在列表中的索引
public string Path;选择数据源
async System.Threading.Tasks.Task SelectSataAsync()
{
print(TopText.text.ToString());
switch (TopText.text.ToString())
{
case "猪":
Path = "Assets/AssetsPackage/Texture/Images/猪/猪水平切";
print("猪猪");
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "马":
Path = "Assets/AssetsPackage/Texture/Images/马/马水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "牛":
Path = "Assets/AssetsPackage/Texture/Images/牛/牛水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "羊":
Path = "Assets/AssetsPackage/Texture/Images/羊/羊水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "鸡":
Path = "Assets/AssetsPackage/Texture/Images/鸡/鸡水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "狗":
Path = "Assets/AssetsPackage/Texture/Images/狗/狗水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "猫":
Path = "Assets/AssetsPackage/Texture/Images/猫/猫水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
case "兔":
Path = "Assets/AssetsPackage/Texture/Images/兔/兔水平切";
await LoadImagesAsync(Path);
ShowCurrentImage();
break;
default: Debug.LogError("起始字段有误"); break;
}
}
//加载图片并添加到列表中
async Task LoadImagesAsync(string imagepath)
{
string[] files = Directory.GetFiles(imagepath, "*.png");//获取文件
if (files.Length > 0)
{
Sum = files.Length;//获取图片总数
print(Sum);
}
else
{
print("folder does not contain any .png files");
}
print(imagepath);
Sum = files.Length;//获取图片总数
sliderLine.maxValue = Sum - 1;
foreach (string file in files)
{
byte[] data = await Task.Run(() => File.ReadAllBytes(file));//读取文件数据
Texture2D texture = new Texture2D(2, 2);
texture.LoadImage(data);
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
spriteList.Add(sprite);
}
}
}
Unity异步加载图片,当该文件夹下有大量图片会缓慢加载,没有什么实际用处,可以用于学习异步
最新推荐文章于 2024-04-30 11:50:40 发布