Kinect体感设备虚拟抛掷盛接系统的设计+源代码(5)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

Kinect体感设备虚拟抛掷盛接系统的设计+源代码(5)

Angular Drag(角阻力):同样指的是空气阻力,用来阻碍物体旋转;

Use Gravity(使用重力):勾选了这个选项之后,游戏对象就会受到重力的影响。

要产生碰撞,必须为游戏对象添加刚体和碰撞器,刚体可以让物体在物理因素的影响下运动。碰撞器是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果有两个刚体相互撞在一起,除非两个对象都有碰撞器,物理引擎才会计算碰撞。否则在物理模拟中,没有碰撞器的刚体会相互穿过。在抛掷盛接系统中,我们给小球和木箱都添加碰撞器,模拟真实场景中小球落入木箱的碰撞效果。

Unity3D的碰撞器作为一群组件,它包含了很多种类,比如,Box Collider(盒子碰撞器)、Mesh Collider(网格碰撞器)等,这些碰撞器应用的场合不同。在需要进行碰撞器添加的时候,我们根据游戏模型的形状,挑选适合于应用的碰撞器。当勾选了碰撞器面板中的IsTrigger属性之后,在物体发生碰撞之时,碰撞函数会触发,但是物体会穿过被碰撞物体。下面介绍几种常用的碰撞函数[7]。

触发信息检测:

MonoBehaviour。OnTriggerEnter(Collider collider) 当进入触发器

MonoBehaviour。OnTriggerExit(Collider collider) 当退出触发器

MonoBehaviout。OnTriggerStay(Collider collider) 当逗留触发器

碰撞信息检测:

MonoBehaviour。OnCollisionEnter(Collision collision) 当进入碰撞器

MonoBehaviour。OnCollisionExit(Collision collision) 当退出碰撞器

MonoBehaviour。OnCollisionStay(Collision collision) 当逗留碰撞器

碰撞器是触发器的载体,而触发器只是碰撞器内的一个属性。当Is Trigger = false 时,碰撞器根据物理引擎发生碰撞,产生碰撞的效果,碰撞时会调用OnCollisionEnter()/Stay()/Exit()函数。在需要物体发生碰撞并产生碰撞效果的时候适用。当Is Trigger = true 时,碰撞器被物理引擎所忽略,物体发生碰撞时会相互穿过,碰撞时会调用OnTriggerEnter()/Stay()/Exit()函数,多用于想要检测物体在运动的过程中是否经过某个区域,而不想影响物体的运动轨迹的情况。

2。2。2  Unity3D环境浏览系统

利用Unity3D可以开发出简单的环境浏览系统,在添加了第一人称视角控制组件之后,就可以在快速编辑好的地形环境中进行场景的浏览。如下图2-3为Unity3D中的第一人称视角控制组件。

此第一人称视角控制组件,在程序整体运行时,会在屏幕上显示该组件z轴正方向视野范围内的全部景象,就好像第一人称游戏中,玩家操作的角色所能看到的场景。

下图2-4为利用Unity3D编辑的地形,以及第一人称组件视野范围内的地形内场景,当程序运行时,通过键盘的上下左右键可以移动该组件,达到浏览场景的效果。

3系统环境

系统的开发与运行都需要windows系统的支持,在正确安装了Kinect for windows的驱动程序之后,就可以使用Kinect设备。

3。1  开发环境

操作系统:windows7\windows10(支持KinectV1。0)、windows8(支持KinectV2。0)。

软件环境:Kinect for windows SDK1。*(支持KinectV1。0)、Kinect for windows SDK2。0(支持KinectV2。0)、Unity3D开发引擎。

开发语言:C#。

硬件要求:内存8GB、CPU(i7\i5)、硬盘至少100G。

3。2  运行环境

操作系统:windows7\windows10(支持KinectV1。0)、windows8(支持KinectV8。0)。

软件环境:Kinect for windows SDK1。*(支持KinectV1。0)、Kinect for windows SDK2。0(支持KinectV2。0)。

硬件要求:内存2GB、CPU(i5)、硬盘至少20G。 (责任编辑:qin)