Unity图片上下张管理

在这里插入图片描述

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;
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值