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

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

Windows Phone等平台的应用程序。

自动资源导入。项目中的资源会被自动导入,并根据资源的改动自动更新。 基于Direc3D(Windows)、OpenGL(Mac、Windows)的图形引擎,并且有自己的API(Wii)。

支持Bump mapping、Reflection mapping、Parallax mapping、Screen Space Ambient Occlusion,动态阴影使用的是Shader Map技术,并支持Render-to-Texture和全屏Post Processing效果。

Shader编写使用ShaderLab语言,同时支持自有工作流中的编程方式或CG、GLSL语言。

内置对Nvdia的PhysX physics engine支持。

游戏脚本是基于Mono的Mono脚本,开发者可以使用JavaScript、C#或Boo语言编写脚本。

音效系统基于OpenAL程序库,可以播放Ogg Vorbis压缩音效,视频采用Theora编码。

3.2 事件函数、脚本执行顺序和生命周期

Unity中的脚本不像常规程序在一个循环中的执行直到任务完成,而是通过调用一些事先声明好的函数,断断续续的将控制权传给一个脚本。当一个函数执行完毕后,控制权便又交回给Unity。这些函数就是事件函数。

下面按照脚本的执行顺序介绍一些常用的Unity事件函数。

Awake()。当前控制脚本实例被装载的时候调用。一般用于初始化整个实例时使用。

12 Start()。当前控制脚本第一次执行Update之前调用。 Update()。最常用的事件函数,每帧都执行一次。

FixedUpdate()。每固定帧绘制时执行一次,与Update不同的是FixedUpdate是渲染帧执行,当渲染效率地下时,FixedUpdate的调用次数也会跟着下降。

OnEnable()。当脚本被启用时调用。 OnDisable()。当脚本被禁用时调用。

OnDestroy()。当脚本的宿主物体被销毁的时候调用。

Unity中编写的脚本一般都会绑定到一个GameObject上,这个GameObject就是程序中的一个基础元素。一个脚本的生命周期就是和它绑定的GameObjec息息相关的,当程序开始运行的时候,Unity会为每一个场景中活跃的GameObject上的脚本生成一个对象,而当脚本的宿主物体(即脚本所绑定的物体)被销毁的时候,脚本的对象也就不存在了。

Unity的脚本默认都会继承与MonoBehavior基类。不继承于MonoBehavior的类通常用来存放一些全局的数据,它在整个程序运行的过程中都是存在的。

3.3 常用API

Transform类。继承于Component类,用于描述和控制一个三维或者二维物体的位置、旋转和缩放属性,。在Unity的场景中,每一个物体都有一个Transform组件,被用来存储和操控位移、旋转和缩放。Transform允许拥有父对象,子对象的属性基于父对象发生偏移。其类图如图9所示。 Transform的常用属性有:

childCount:当前Transform所拥有的子对象的数量。

13 eulerAngles:旋转的欧拉角度数。

localEulerAngles:当前Transrom相对于父对象的旋转欧拉角。 localPostion:相对于父对象的位置

localRotation:相对于父对象的旋转。 Parent:此Transform的父对象。 Transfrom的常用方法:

DetachChildren:分离所有子对象。

Rotate:指定一定的旋转角度给当前的对象。

RotateAround:让当前的对象绕着某一个指定的点旋转一定的角度。 Translate:让当前对象的位置沿着指定的方向和距离移动。

Vector3类。三维向量类,使用它来记录一个物体在三维空间里X、Y、Z轴上的位置、旋转和缩放信息。Vector3类定义了一些静态变量来代表一些常用的三维向量,如Vector3.back表示的的是Vector3(0,0,-1),Vector3.forward表示的是Vector3(0,0,1)等等。在编程过程中可以直接快捷的使用这些变量。 Vector3的常用属性有:

Magnitude:返回当前三维向量的长度(只读)。 Normalized:返回当前向量的标准向量。 X:当前向量的X值。 Y:当前向量的Y值。 Z:当前向量的Z值。

14 Vector3的常用方法有:

Angle:返回两个Vector3向量之间的夹角。 Cross:返回两个Vector3向量的叉乘。 Lerp:在两个Vector3向量之间线性差值。 MoveTowards:直线移动一个点到目标点。

图9 Transfrom的类图

3.4 Unity3D的第三方UI插件NGUI

15

联系合同范文客服:xxxxx#qq.com(#替换为@)