【基础】Unity中背景、3D object、NGUI控件共存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【基础】Unity中背景、3D object、NGUI控件共存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
大部分U3D的游戏开发中都需要用NGUI这款界面控件,NGUI如何和3D物体共存是刚使用U3D时最常问的问题。
笔者在当前的项目中还需要加入一个背景图片,因此这里将方法统一讲一下,层次结构需求是:背景图片(底)——3D物体(中)——NGUI控件(顶)
以下是过程:
1.先来考虑3D物体和NGUI的共存,那么首先New一个场景
2.先不管Main Camera,我们来设置NGUI部分,Create一个2D UI,再拖一个NGUI的Button进去。
Create一个Cube表示场景中的3D物体,为了层次清晰,我们把Cube放到Main Camera中,Main Camera下都放3D Object, UI Root下都是NGUI控件。
然后再打一个光,让3D物体清晰点,效果如下:
3. 现在乍一看似乎效果还不错,但是会发现如果NGUI的面板也处于Main Camera的视野中,就会看到两个Button,因此我们设置一下Layer, 让UI Root在UI层, MainCamera下的保持在Default即可
然后将Main Camera的Culling Mask中的UI层去掉,这样Main Camera就看不到UI层的NGUI控件了,NGUI控件只让其自带的Camera来Render,另外方便之后的设置,将Main Camera的Clear Flags设置成Depth only,这样摄像机的层次结构就可以出来了
3D物体是在中间层,因此这里Main Camera的Depth设置成0,UI Root中的Camera Depth设为1(最顶层),Depth就是渲染的顺序,越大越后渲染。
至此,3D物体和NGUI控件已经共存合理了,移动下3D物体可以发现NGUI控件始终盖在上面
4. 接下来再设置背景图片,再create一个Camera,命名为bgCamera,再新建一个layer, bg层(如何新建layer是基本操作这里就不讲了),将bgCamera划入bg层
5.create一个panel,用来之后做背景图片,调节位置角度(在bgCamera的视野范围内),同样划入bg Layer,并且放到bgCamera下
6.接下来类似的设置下bgCamera
depth设为-1(最底层)
7.此时多了一个bg层,记得去Main Camera那里将bg层也去掉
8.至此,场景上的设置就结束了,那么要有一个背景,而往往背景是需要动态捕获屏幕分辨率从而来填满整个界面的,因此这里笔者采用脚本添加的方式,在plane上添加一个新脚本BG.cs,脚本内容如下:
1 using UnityEngine; 2 using System.Collections; 3 4 public class BG : MonoBehaviour { 5 // 背景贴图 6 public Texture2D bgTexture; 7 // Use this for initialization 8 void Start () { 9 gameObject.AddComponent<GUITexture>(); 10 } 1112// Update is called once per frame13void Update () { 14 guiTexture.texture = bgTexture; 15 transform.localScale = new Vector3(0, 0, 0); 16 transform.position = new Vector3(0, 0, 0); 17 guiTexture.pixelInset = new Rect(0, 0, Screen.width, Screen.height); 18 } 19 }
然后将需要的贴图赋给这个公共变量
9.运行一下看看效果:
10.效果完成了, 最后再调整一个细节,就是多个camera上都绑定了一个Audio Listener 和Flare Layer, 只需留下一个即可,可以选择将bgCamera和UI Root下Camera的 这两个勾去掉
大功告成了,呼呼,看起来比较长,其实只要理解了Depth渲染的理念,就很容易设置了,比较基础的讲解,有不明白的朋友也可以在下面评论,笔者会抽空回答,谢谢支持!
Cowill
原文:http://www.cnblogs.com/cowill/p/4264245.html
内容总结
以上是互联网集市为您收集整理的【基础】Unity中背景、3D object、NGUI控件共存全部内容,希望文章能够帮你解决【基础】Unity中背景、3D object、NGUI控件共存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。