首先在一个Canvas中在创建2个Canvas节点,然后把2张图片分别放在两个节点中
这是2个Canvas;
这是两个Image,然后再设置Canvas,控制Camera的显示层级:
最后编写代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UIDepth : MonoBehaviour {
public int order;
public bool isUI = true;
void Start()
{
if (isUI)
{
Canvas vanvas = GetComponent<Canvas>();
if (vanvas == null)
{
vanvas = gameObject.GetComponent<Canvas>();
}
vanvas.overrideSorting = true;
vanvas.sortingOrder = order;
}
else
{
Renderer[] renders = GetComponentsInChildren<Renderer>();
foreach (Renderer render in renders)
{
render.sortingOrder = order;
}
}
}
}
最后把需要改变层级的图片和特效绑定UIDepth.cs脚本。
UI0的order = 0:
UI1的order = 2:
effect的order = 1:
这样的话运行时特效就会显示再2张图片之间