unity中如何把一个特效放在两张图片之间???

首先在一个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张图片之间

猜你喜欢

转载自blog.csdn.net/MonoBehaviour/article/details/81067887