【强烈推荐】基于Unity3D的三维虚拟电脑组装实验系统开发毕业论文设计 联系客服

发布时间 : 星期五 文章【强烈推荐】基于Unity3D的三维虚拟电脑组装实验系统开发毕业论文设计更新完毕开始阅读5218d6900d22590102020740be1e650e52eacf3d

图14 程序运行流程图

4.2 实现方案介绍

虚拟装机系统的核心部分是三维场景摄影机的控制和控制物体在XYZ三个坐标轴上的移动旋转。。输入与摄影机相应的对应表格设计如表1所示:

表1 摄像机控制

输入 ALT+鼠标左键 ALT+鼠标滚轮 ALT+鼠标中键

响应 摄像机以当前目标点为中心旋转 拉近或者拉远摄像机视角 移动摄像机位置 20 加入Alt键的目的是为了区分选中电脑部件和操控摄像机,控制电脑部件的输入与响应对应的表格设计表2所示:

表2 物体的控制 输入 鼠标左键+移动 (Gizmo未显示情况下)鼠标右键单击 鼠标左键单击Gizmo (Gizmo显示情况下)鼠标右键单击 响应 移动物体 显示物体在三个轴向上得Gizmo 在三个轴向上旋转物体 隐藏Gizmo 用户界面方面,我用NGUI的摄像机来渲染所有的UI界面元素,因为NGUI的控件事件响应需要NGUI的Camera支持。同时为了渲染3D的场景,需要另外架设一个3D摄像机。

4.3 系统主界面实现

系统主界面主要是提供进入其他场景的入口,是一个二维的场景,直接用NGUI来搭建就行了,完成的效果如图15所示:

21

图15 系统主界面

首先界面所有的图片都需要打包成NGUI的Atlas,这是NGUI为减少Draw Call的一种方案。将所有的UI元素打包成一个图集,所以在绘制不同的UI的时候,系统只需要调用一次Draw Call就行了。

其次,为了显示中文字体,需要制作字体。NGUI提供两种字体方案,第一种是动态字体(Dynamic Font),另一种是静态字体(Normal Font)。动态字体的原理是每一次使用字体的时候系统都去字体库读取字体,将读取到的信息渲染成一张纹理显示出来,这样做会消耗系统的性能,但能带来的好处是不会受限制的使用你想要任何文字,而且制作也较为方便。静态字体是提前将需要的文字制作成一张纹理。这种方式需要提前预估需要用到的文字,然后使用BM Font软件制作纹理,导入NGUI生成字体预制才能使用。它的缺点是步骤繁琐,而且可能遇到制作的字体纹理无法满足后

22 续的需求,导致需要重新制作的问题。但它也有运行比较稳定,且比较节省资源的优点。

有了字体和图片就可以在工程里把UI层级搭建起来了,场景元素的层级结构如图16:

图16 主界面场景元素层级图

场景物体之间的通讯关系如图17所示:

23