【Unity】UGUI不改变子物体顺序调整显示层级顺序

1. 顺便提一下UI格子的动态排序,即通过改变子物体顺序,调整UI显示层级顺序

            //设为第一个子物体
            itemButton.transform.SetAsFirstSibling();
            //设为最后一个子物体
            itemButton.transform.SetAsLastSibling();
            //设为指定顺序子物体
            itemButton.transform.SetSiblingIndex(0);

2. 不改变子物体顺序调整显示层级顺序,在一些不能改变子物体顺序的情况,如果要调整UI界面内某部分的显示层级,部分UI区域高亮(比如新手引导全屏遮黑,可点击区域高亮,或者指定区域需要高亮显示,其余部分遮黑),可以给高亮区域添加Canvas组件,调整渲染层级

举个Demo:要求点击格子高亮,其余部分遮黑(动态为高亮格子添加Canvas组件)

 

 现在遮黑区域是可点击状态,如果需要遮黑区域不可点击,勾选遮黑Image的Raycast Target,接收射线检测以屏蔽下方UI的点击

public class TestHandler : MonoBehaviour
{
    [SerializeField] GameObject shadow;

    Button[] buttons;
    GameObject lastItem;

    void Start()
    {
        //获取格子按钮,添加点击事件
        buttons = GetComponentsInChildren

 

你可能感兴趣的:(功能Demo)