用代碼設置UGUI渲染無非和三個API有關:
1.SetAsFirstSibling();
2.SetAsLastSibling();
3.SetSiblingIndex(n)
SetAsFirstSibling()是設置為最先渲染的,即會被后渲染的擋住。
SetAsLastSibling();是設置為最后渲染的,即會擋住比他先渲染的
SetSiblingIndex(n)是設置層級,從0開始到childcount -1
當n為0時,其效果與SetAsFirstSibling();相同
但是當層級小於0時,其效果與SetAsLastSibling()一致
當層級為大於等於transform.parent.childCount - 1時,其效果與SetAsLastSibling一致
例子:
給藍色Image掛上如下腳本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Test : MonoBehaviour, IPointerClickHandler
{
int cnt = 0;
public void OnPointerClick(PointerEventData eventData)
{
if (Input.GetKey(KeyCode.F))
{
transform.SetAsFirstSibling();
}
else if(Input.GetKey(KeyCode.L))
{
transform.SetAsLastSibling();
}
//transform.SetSiblingIndex(cnt++);
}
}
點擊藍色Image並按下F,發現image3(藍色)跑到了Image(1)上面,
即藍色Image的渲染層級變成0,最先渲染