首先在一个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张图片之间
本文介绍如何在Unity中使用Canvas和UIDepth脚本控制UI元素的显示层级,通过设置不同图片和特效的order属性,实现在运行时特效显示在两张图片之间。
16万+

被折叠的 条评论
为什么被折叠?



