unity中如何实现一个场景多个图片或画布的切换

img


如题,类似于图片中这样,点击按钮可以实现文字和图片的切换。应该如何写脚本呢?

实现一个场景多个图片或画布的切换,你可以在一个空的 GameObject 上添加多个 Image 或 RawImage 组件,并给它们各自创建对应的纹理。

切换图片或画布的时候,你可以通过修改 Image 或 RawImage 的 texture 属性来实现。代码示例如下:

using UnityEngine;
using UnityEngine.UI;

public class ImageSwitcher : MonoBehaviour
{
    public Texture[] textures; // 存放纹理的数组
    public float switchInterval = 1f; // 切换间隔时间

    private int currentTextureIndex = -1; // 当前纹理的下标
    private RawImage rawImage; // RawImage 组件

    void Start()
    {
        rawImage = GetComponent<RawImage>(); // 获取 RawImage 组件
        if (textures.Length > 0)
        {
            currentTextureIndex = 0;
            rawImage.texture = textures[currentTextureIndex]; // 显示第一张纹理
            InvokeRepeating("SwitchTexture", switchInterval, switchInterval); // 定时切换
        }
    }

    void SwitchTexture()
    {
        currentTextureIndex++;
        if (currentTextureIndex >= textures.Length)
            currentTextureIndex = 0;
        rawImage.texture = textures[currentTextureIndex];
    }
}

在这个脚本中,我们通过定时器实现了不同纹理的切换。你也可以通过按钮点击事件等方式切换纹理。

文字内容一个数组,图片内容一个数组,切换按钮改变索引,将对应索引的数组内容填充到文字框和图片框

新手熟悉一下 UI,图片或者画布都可以通过SetActive(FALSE、TRUE)来控制显示和隐藏
例如图片A,B和按钮C
C所触发或者相应的事件为A.SetActive(false);B.SetActive(true)来控制A显示,B隐藏,反之亦可
熟悉之后可以通过动态加载的方式来控制。