加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

UGUI的粒子特效和UI界面层级

(2017-04-07 16:27:12)
分类: unity3d

开发项目时会碰到UI界面和粒子特效界面层级调整的问题,默认的情况下粒子特效会显示在UI的上面.

问题1:

那么如果我想要粒子特效和ui界面有个层级关系该怎么办呢?

调整渲染层级可以达到这个效果。

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class ParticalDepth : MonoBehaviour
{
    public int order;
    void OnEnable()
    {
        Renderer[] renders = GetComponentsInChildren();
        int count = renders.Length;
        for (int i = 0; i < count; i++)
        {
            Renderer render = renders[i];
            render.sortingOrder = order;
        }
    }
}

 

将以上类绑定到粒子上,然后设置order数值即可。

 

问题2:

那么如果要解决ui上的一个图片在粒子上面,一个在粒子下面该如何解决呢?

在图片上加上Canvas组件,调整orderinlayer这个参数,让这个参数和粒子特效绑定的ParticalDepth的order对应,调整这两个参数,即可达到ui和粒子之间相互遮罩的问题。

 

问题3:

那么问题又来了,加了个canvas发现,UI界面上的按钮点击没反应了,这是咋回事呢?

在添加Canvas组件的节点上,挂上一个GraphicRaycaster组件,然后将其中的BlockingMask设置为UI即可。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有