Unity 控制组件显示在同级最前端或者最后端

有时候我们在做一些类似轮播的效果时,就通常会用到切换某张图片显示在最后端或者最前端。

如我写一个这样的脚本:

复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ChangePic : MonoBehaviour
{
    public Transform tran;   
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(ChangeNextImage());
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    IEnumerator ChangeNextImage()
    {        
        while (true)
        {
            yield return new WaitForSeconds(1f);
            tran.GetChild(0).SetAsLastSibling();
        }
    }
}

把它放到需要切换的组件里,可实现如下简单切换效果:
UI简单轮播切换_哔哩哔哩_bilibili

从上面案例看,方法是简单的:

首先获取组件的RectTransform组件,然后就可以调用SetAsLastSibling()和SetAsFirstSibling()方法。就可以把组件移动到最后面和最前面。

复制代码
using UnityEngine;
using UnityEngine.UI;

public class MoveToLastSibling : MonoBehaviour
{
    void Start()
    {
        // 获取组件的RectTransform
        RectTransform rectTransform = GetComponent<RectTransform>();

        // 将组件移动到最前面
        rectTransform.SetAsFirstSibling();

        // 将组件移动到最后面
        rectTransform.SetAsLastSibling();
    }
}

需要注意的是以上两个方法都是在当前父物体的同级组件之间进行移动。

相关推荐
Q1808095127 分钟前
手撕BP与CNN:不依赖外源库,探寻神经网络原理
c#
c#上位机1 小时前
halcon图像分割之动态阈值分割
图像处理·人工智能·计算机视觉·c#·halcon
崇文殿大学士2 小时前
C# MediatR 中介者模式 观察者模式
观察者模式·c#·中介者模式
derive_magic2 小时前
wwwwwwjava
开发语言·c#
代数狂人2 小时前
【秒懂C#14 第一章:C#简介】
开发语言·c#
AllBlue2 小时前
unity嵌入安卓界面,如何显示状态
android·unity·游戏引擎
web3.08889993 小时前
淘宝客API调用折扣商品搜索及商品详情示例代码
开发语言·c#
张人玉3 小时前
C#编写西门子S7PLC通信的相关知识点
microsoft·c#·wpf·plc·西门子s7通信
Byron Loong3 小时前
【C#】离线场景检测系统时间回拨
开发语言·c#
tealcwu3 小时前
【Unity技巧】实现在Play时自动保存当前场景
java·unity·游戏引擎