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. Fixflow引擎解析(五)(内核) - 基于Token驱动的引擎内核运转原理

    Fixflow内核运转图v1.0(beta) 未完待续.........

  2. 面试体验:Microsoft 篇(转)

    http://www.cnblogs.com/cathsfz/archive/2012/08/14/microsoft-interview-experience.html 在上一篇<面试体验:G ...

  3. MySql添加用户,新建数据库,用户授权,删除用户,修改密码

    转自:http://www.cnblogs.com/fly1988happy/archive/2011/12/15/2288554.html MySql中添加用户,新建数据库,用户授权,删除用户,修改 ...

  4. c++与c不太相同的一些地方2

    1.一般全局变量放到cpp 文件里面,而不是.h 里面.要不然容易乱套,这个乱几次就好了,先记住这样一种编码规范. 以为大家都引入就比较麻烦,但是实现起来就只有cpp里面才有.毕竟.h是要被包含的文件 ...

  5. Java阻塞中断和LockSupport

    在介绍之前,先抛几个问题. Thread.interrupt()方法和InterruptedException异常的关系?是由interrupt触发产生了InterruptedException异常? ...

  6. linux+asp.net core+nginx四层负载均衡

    Linux Disibutaion:Ubuntu 16.04.1 LTS Web Server:Nginx.Kestrel 关于如何在linux中部署asp.net core我这里不再详细介绍,可以参 ...

  7. Anddoi 将时间转换为指定时区的时间

    import java.text.Format;import java.text.ParseException;import java.text.SimpleDateFormat;import jav ...

  8. Exam 70-462 Administering Microsoft SQL Server 2012 Databases 复习帖

    好吧最近堕落没怎么看书,估计这个月前是考不过了,还是拖到国庆之后考试吧.想着自己复习考试顺便也写点自己的复习的概要,这样一方面的给不准备背题库的童鞋有简便的复习方法(好吧不被题库的同学和我一样看MSD ...

  9. Jquery on 事件

    $(document).on("click", 'a.AAA', function(){ var flag=$(this).attr('flag'); alert(flag); } ...

  10. 第二十七篇、使用MVVM布局页面

    思路:架构的设计模式主要有这么两种 >MVC :这种方式用得很多,也很是常见,不在过多的介绍 >MVVM:使用这种 常常需要导入第三方框架,常见的是响应式框架 >主要讲一下ViewM ...