2D UI的工作原理

  UI控件的位置在UI Root 的红框(视窗)上,也就是UI控件的z轴,相机的z轴,UI Root的z轴都是0,因为2D UI都是纯粹的2D图片按层次显示,不会不出现三维立体效果,所以都是直接紧贴着视窗,只要UI控件在UI Root的红框范围内,那么UI就能够正常显示在Game上。

  2D UI最本质的意义是:UI摄像机是一个正交摄像机。

3D UI的工作原理

  在3D UI下,创建的UI控件都在一个三维立体空间中,摄像机是一个透视的摄像机,这和2D UI有着截然不同的区别,因为2D UI是一个正交摄像机。

  3D UI中UI Root的坐标点是在三维空间的一个点上,这个位置是创建UI时自动定义好的,以后创建的UI控件都会自动地在这个点所在的面上生成(自动统一到UI Root的z轴)

  注意:如果需要将2D UI改为3D UI,不是简单地将摄像机改为透视模式就行了,在NGUI 3.6.0以后的某些版本中,这样会导致看不到任何UI控件(这些版本的2D UI的空间和Camera、UI Root三者在同一个z轴面上,而变成3D摄像机后看不到和摄像机同z轴的物体),如果将3D UI的摄像机直接改为正交模式,也并不能简单地变成2D UI,因此正交相机的Size并不和NGUI默认的值一样。

如何判断该选择哪一种UI

  1.新版本的NGUI对3D UI支持很好,如果3D UI和2D UI选择哪一个都行的情况下,建议选择3D UI,扩展性更强。

  2.如果出现UI不允许有远近透视的大小变化,必须选择2D UI。

  3.如果要出现UI有三维变换的效果,就必须用3D UI。

  4.无法明确知道应用哪一种UI的情况下,建议选用3D UI。

  5.不论用哪一种UI,其实本质上只是一个摄像机的区别,基本上都能实现UI效果,只是需要的处理不一样。

2D UI和3D UI的工作原理的更多相关文章

  1. jQuery UI Widget(1.8.1)工作原理--转载

    先看下代码的相关注释: /*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/abo ...

  2. jQuery UI Widget(1.8.1)工作原理

    /*! * jQuery UI Widget 1.8.1 * * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about) * Dual l ...

  3. 3D UI场景中,把XY平面的尺寸映射为屏幕像素的数学模型推导

    概述及目录(版权所有,请勿转载,欢迎读者提出错误) 之前用kanzi的3D UI引擎和cocos-2d的时候都有遇到过这个问题,就如何把3D场景中的XY平面的尺寸映射为与屏幕像素一一对应的,即XY平面 ...

  4. UI和3D场景同时都需要响应触摸事件

    比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分.为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上. 以前NGUI的时候都是自己 ...

  5. How Javascript works (Javascript工作原理) (七) WebAssembly 对比 JavaScript 及其使用场景

    个人总结: 1.webworkers实现了用多线程浏览器来进行多线程操作js的能力. 2.web workers不能操作dom,window,document等对象,一般用于cpu计算型的任务.   ...

  6. 《浏览器工作原理与实践》<01>Chrome架构:仅仅打开了1个页面,为什么有4个进程?

    无论你是想要设计高性能 Web 应用,还是要优化现有的 Web 应用,你都需要了解浏览器中的网络流程.页面渲染过程,JavaScript 执行流程,以及 Web 安全理论,而这些功能是分散在浏览器的各 ...

  7. JavaScript 工作原理之七-Web Workers 分类及 5 个使用场景

    Web Workers 分类及 5 个使用场景 原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 这是 JavaScript 工作原理的第七章. 本系列 ...

  8. 浏览器内部工作原理--作者:Tali Garsiel

    本篇内容为转载,主要用于个人学习使用,作者:Tali Garsiel 一.介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到 ...

  9. MapReduce工作原理讲解

    第一部分:MapReduce工作原理 MapReduce 角色•Client :作业提交发起者.•JobTracker: 初始化作业,分配作业,与TaskTracker通信,协调整个作业.•TaskT ...

随机推荐

  1. Controllers

    Controllers Controllers are the bread and butter of the framework they control when a model is used ...

  2. 如何去除掉inline-block元素之间的默认间距

    前几天写一个页面 div{width:900px;} div li{ display:inline-block; width:300px;} <ul> <li></li& ...

  3. case,cast

    UPDATE dbo.Dat_Camera SET Cam_Config='<xml><cam><type>2</type>'+CASE WHEN Ca ...

  4. HP服务器RAID配置

    公司服务器硬盘空间不够了(HP的服务器),购买了10块硬盘,由于之前没有做过RAID,感觉很高大上的样子,就请教了HP的技术人员,技术人员发了两份文档,分别是DL380G7(DL580G7)和DL38 ...

  5. Python 基础【第七篇】集合

    一.集合的概念: 不同元素的集合 二.集合的方法: 方法 用法 范例 set() 过滤掉重复 设置成为集合 >>> subset=set([1,1,2,3,4,4,6]) >& ...

  6. struts2的action从request获取参数值的几种方式

    使用jquery框架的ajax能够方便的向后台传递参数,以$.post为例,参数有2种方式字符串和键值对:$.post(url, "name=aty&age=25")和$. ...

  7. 【转载】Git的安装与使用

    Git的安装与使用  转载来源:http://www.cnblogs.com/Bonker/p/3441781.html 1,下载git https://code.google.com/p/msysg ...

  8. js事件监听机制(事件捕获)总结

    在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒 ...

  9. nginx install in centos

    1.在nginx下载rpm包,如nginx-release-centos-6-0.el6.ngx.noarch.rpm ,并安装(可用yum直接安装): 注:rpm包只是提供一个nginx源. 2.使 ...

  10. Markdown 生成目录

    <link rel="stylesheet" href="http://yandex.st/highlightjs/6.2/styles/googlecode.mi ...