unity network 如何在unity 游戏结束界面后显示不同的UI

全面理解 Unity UI 系统-GAD腾讯游戏开发者平台之前使用一个UICamera和一个MainCamera做场景,希望给场景加上一个BackGround,但是将BackGround和操作的UI都绑在UICamera,将游戏物体正常地用MainCamera渲染时,出现了游戏物体遮挡住Button或者BackGround直接遮挡住了整个场景的情况。在不清楚Camera的渲染方式的时候粗暴地去除了BackGround,用SkyBox来带替,作为游戏背景。
现在我使用三个Camera,分别为BgCamera,ControlCamera,MainCamera,目标是BackGround最先渲染,然后是游戏场景,最后是ControlUI。
而在在Unity3d中的渲染顺序如下:
不同Camera的Depth;
同Camera下的Layer。
1.同Camera下的Layer
在这里,我创建了两个Canvas,分别用于储存BackGround和ControlUI,并将两个Canvas的Camera都绑为这里的同一个Camera。
然后设置两个Canvas的OrderInLayer分别为-10和10,这样的最终结果是:
BackGround先渲染,Button后渲染,Button在BackGround上。
2.不同Camera的Depth
这里将BgCanvas绑在BgCamera上,ControlCanvas绑在ControlCamera上,Cube则为游戏物体。
设置Camera的ClearFlags为Depth Only,分别设置BgCamera,ControlCamera,MainCamera的Depth为-10,0,10。
可以得到BgCamera最先渲染,然后是MainCamera,最后是ControlCamera:
可以得到ControlUI始终在最上层,不会被物体遮挡,而只要将Depth设置为-10,10,0,将得到以下效果:
由于物体是最后渲染,所以导致了Button会被Cube遮盖住。
对粒子系统不甚了解,不过想来应该也是差不多的。怎么在UNITY中制作游戏开始 游戏暂停 结束游戏 三个按钮_百度知道
怎么在UNITY中制作游戏开始 游戏暂停 结束游戏 三个按钮
我有更好的答案求助知道网友
建议可以学习下NGUI,Unity的UI插件。
用ui加脚本实现。
就是不知道代码怎么写。。。
查API去,与发布会那是你基础问题。
本回答被提问者采纳
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
unity的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
UGUI研究院之不添加摄像机解决UI与UI特效叠层问题(九)
UGUI研究院之不添加摄像机解决UI与UI特效叠层问题(九)
围观96077次
编辑日期: 字体:
找到一个不用添加多个Camera在两个UI中叠加UI特效的方法。如下图所示,两个Image之间放了个UI特效。
<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff<div class="crayon-num crayon-striped-num" data-line="crayon-5adeff<div class="crayon-num" data-line="crayon-5adeff
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块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!UGUI(Unity New UI System)使用注意点-GAD腾讯游戏开发者平台

我要回帖

更多关于 unity network 的文章

 

随机推荐