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();
    }
}

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

相关推荐
星夜泊客1 小时前
Unity 游戏开发中的防御性编程与空值处理实践
unity·设计模式·游戏引擎
睡前要喝豆奶粉3 小时前
多表分页联查——EF Core方式和Dapper方式
c#·.netcore
格兰芬多呼神护卫4 小时前
python实现Latex格式的公式转OMML并写入word
python·c#·word
chao1898445 小时前
C 文件操作全解速览
服务器·c语言·c#
mit6.8246 小时前
[无人机sdk] Open Protocol | 协议包构造&验证
游戏引擎·无人机·cocos2d
tealcwu6 小时前
【Unity踩坑】Unity测试用例命名空间错误解决方案
unity·游戏引擎·测试用例
月巴月巴白勺合鸟月半6 小时前
一个DevExpress的Docx文件处理的Bug的解决
c#·bug
.NET修仙日记8 小时前
第一章:从零开始构建你的第一个C#/.NET应用程序
c#·.net·.net core
AA陈超10 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-28 构建属性菜单小部件控制器
c++·游戏·ue5·游戏引擎·虚幻
地狱为王10 小时前
Unity使用PP-MattingV2实现人像分割
unity·游戏引擎