unity怎么组合多个物体的meshunity renderqueue

程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
UGUI研究院之不添加摄像机解决UI与UI特效叠层问题(九)
UGUI研究院之不添加摄像机解决UI与UI特效叠层问题(九)
围观47047次
编辑日期: 字体:
找到一个不用添加多个Camera在两个UI中叠加UI特效的方法。如下图所示,两个Image之间放了个UI特效。
<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de<div class="crayon-num crayon-striped-num" data-line="crayon-58d9de<div class="crayon-num" data-line="crayon-58d9de
using UnityEngine;using System.Collections;using UnityEngine.UI;&public class UIDepth : MonoBehaviour { public int order; public bool isUI = true; void Start ()
Canvas canvas = GetComponent&Canvas&();
if( canvas == null){
canvas = gameObject.AddComponent&Canvas&();
canvas.overrideSorting = true;
canvas.sortingOrder = order;
Renderer []renders&&=&&GetComponentsInChildren&Renderer&();&
foreach(Renderer render in renders){
render.sortingOrder = order;
原理就是设置 sortingOrder ,给需要修改order的UI元素挂上UIDepth脚本 。如下图所示,在UI容器中设置order。
注意: UI0 我设置了order =0 (可以不设置,因为默认所有UI的Order都是0)
ParticleSystem 我设置了order =1
UI2 我设置了order =2
所以效果是,UI2 挡住 ParticleSystem 挡住 UI0
欢迎大家提意见。互相讨论互相学习UGUI~,嘿嘿。
这段代码必须运行了才能看到效果。
补充一下 Unity5.3的粒子特效里已经有sortingOrder属性了,也就是说以后就不需要加Canvas组件了。如下图所示
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!Mesh Filter & Mesh Render - Tekkaman - 博客园
随笔 - 1379
【Mesh Filter】
  The&Mesh Filter&takes a mesh from your assets and passes it to the&&for rendering on the screen.
  Mesh Filter决定使用哪一个Mesh。Mesh Filter只有一个参数,就是指定Mesh。
  When importing mesh assets, Unity automatically creates a&&if the mesh is skinned, or a Mesh Filter along with a Mesh Renderer, if it is not.
【Mesh Render】
  The&Mesh Renderer&takes the geometry from the&&and renders it at the position defined by the object's&&component.
  Mesh Render 负责渲染 Mesh Filter 指定的 Mesh,在 Transform 的位置渲染这个Mesh。
  Mesh Render参数主要指定是否产生和接受阴影,以及使用了Meterial。
  Meshes imported from 3D packages can use multiple&. &Each submesh will use one material from the materials list. If there are more materials assigned to the Mesh Renderer than there are submeshes in the mesh, the first submesh will be rendered with each of the remaining materials, one on top of the next. At a cost of performance, this will let you set up multi-pass rendering on that submesh. Fully opaque materials, however, will simply overwrite the previous layers, costing performance for no advantage.
  如果有多个Meterial,并且Meterial数量多过Submesh的数量,则第一个Mesh会使用自己对应的meterial以及剩下的meterial。排最后的meterial会被前面的meterial覆盖或混合。
  一个GameObejct如果拥有多个Material,则Unity会将多个Material转化为多个Pass。
阅读(...) 评论()

我要回帖

更多关于 unity renderqueue 的文章

 

随机推荐