using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
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;
// Start is called before the first frame update
void Start()
{
// SelectSataAsync();
SelectSata();
sliderLine.onValueChanged.AddListener(OnSliderValueChanged);
TextString();
LeftBtn.onClick.AddListener(ShowPrevImage);
RightBtn.onClick.AddListener(ShowNextImage);
}
// Update is called once per frame
void Update()
{
}
void SelectSata()
{
print(TopText.text.ToString());
switch (TopText.text.ToString())
{
case "猪":
Path = "Texture/Images/猪/猪水平切";
print("猪猪");
LoadImages(Path);
ShowCurrentImage();
break;
case "马":
Path = "Texture/Images/马/马水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "牛":
Path = "Texture/Images/牛/牛水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "羊":
Path = "Texture/Images/羊/羊水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "鸡":
Path = "Texture/Images/鸡/鸡水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "狗":
Path = "Texture/Images/狗/狗水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "猫":
Path = "Texture/Images/猫/猫水平切";
LoadImages(Path);
ShowCurrentImage();
break;
case "兔":
Path = "Texture/Images/兔/兔水平切";
LoadImages(Path);
ShowCurrentImage();
break;
default: Debug.LogError("起始字段有误"); break;
}
}
void LoadImages(string folderName)
{
Sprite[] sprites = Resources.LoadAll<Sprite>(folderName);
print(folderName);
if (sprites.Length > 0)
{
Sum = sprites.Length;
Debug.Log(Sum);
}
else
{
Debug.LogError("Folder does not contain any sprites.");
}
sliderLine.maxValue = Sum - 1;
foreach (Sprite sprite in sprites)
{
spriteList.Add(sprite);
}
}
// 显示当前图片
void ShowCurrentImage()
{
image.sprite = spriteList[currentImageIndex]; // 将当前图片显示在UI元素中
sliderLine.value = currentImageIndex; // 设置拉动条的值
NowText.text = currentImageIndex.ToString(); // 右侧当前层数的值
CountText.text = NowText.text + "层";//左侧当前层数的值
}
// 切换到上一张图片
public void ShowPrevImage()
{
currentImageIndex--;
if (currentImageIndex<=0)
{
currentImageIndex = 0;
}
ShowCurrentImage();
}
// 切换到下一张图片
public void ShowNextImage()
{
currentImageIndex++;
if (currentImageIndex >= Sum)
{
currentImageIndex = Sum - 1;
}
ShowCurrentImage();
}
// 拉动条值改变时调用
public void OnSliderValueChanged(float value)
{
currentImageIndex = Mathf.RoundToInt(value); // 将拉动条的值四舍五入为整数并赋值给当前图片索引
ShowCurrentImage();
}
void TextString()
{
SumText.text = Sum.ToString();
EndText.text = SumText.text+ "(层 )";
DescribeText.text = "从 左 到 右 0 -" + SumText.text;
}
}
Unity图片上下张管理
最新推荐文章于 2024-07-28 21:59:04 发布