基于Unity3D的三维虚拟电脑组装实验系统开发毕业论文 精品 联系客服

发布时间 : 星期五 文章基于Unity3D的三维虚拟电脑组装实验系统开发毕业论文 精品更新完毕开始阅读1b9d5a3200f69e3143323968011ca300a6c3f68f

基于Unity3D的三维虚拟电脑组装实验系统

图14 程序运行流程图

4.2 实现方案介绍

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

表1 摄像机控制

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

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

表2 物体的控制 输入 鼠标左键+移动 (Gizmo未显示情况下)鼠标右键单击 鼠标左键单击Gizmo (Gizmo显示情况下)鼠标右键单击 响应 移动物体 显示物体在三个轴向上得Gizmo 在三个轴向上旋转物体 隐藏Gizmo 第12页

基于Unity3D的三维虚拟电脑组装实验系统

用户界面方面,我用NGUI的摄像机来渲染所有的UI界面元素,因为NGUI的控件事件响应需要NGUI的Camera支持。同时为了渲染3D的场景,需要另外架设一个3D摄像机。

4.3 系统主界面实现

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

图15 系统主界面

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

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

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

第13页

基于Unity3D的三维虚拟电脑组装实验系统

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

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

图17 主场景物体间通讯方式

所有的按钮都只和Load Scene这个脚本通讯。当用户发生点击事件时,就通知Load Scene 脚本执行相应的操作。Load Scene脚本定义了LoadFoundation()、LoadHardWare()、LoadExperience()、LoadInstructions()、Exit()方法,分别响应不同的按钮事件。

4.4 基础知识介绍场景的实现

基础知识场景的作用是向用户展示组装电脑的一些基本流程,让用户了解认识计算机的各个组成部件。主要采用NGUI的Drag Panel来制作。用户可以左右滑动图片来显示更多的内容。界面如图18所示:

第14页

基于Unity3D的三维虚拟电脑组装实验系统

图18 基础知识介绍场景

NGUI Draggable Panel的实现原理是拖动Panel Content,Panel在渲染的是固定区域的UI元素。制作拖动视图的流程如图19所示:

第15页