第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/19 15:38:00 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

触发器则表示当碰撞发生时触发事件。添加触发器只需要在Collider的监视器窗口勾选IsTrigger选项即可。在Unity3d中,主要通过如图26所示的接口来处理碰撞器和触发器的碰撞检测:

图26 Unity中的碰撞器接口 具体来讲碰撞器还可分为三类。

静态碰撞器(Static Collider)指的是没有附加刚体而附加了碰撞器的对象。这类对象会保持静止或很轻微的移动。

刚体碰撞器(Rigidbody Collider)指的是附加了刚体的对象。

运动学刚体碰撞器(Kinematic Rigidbody Collider)指的是在刚体组件中勾选了IsKinematic属性的碰撞器。它将不受物理力的影响。

碰撞检测发生时不同碰撞器发送给Collison类对象的消息如图27所示:

32

图27 碰撞检测时发送信息表

触发器触发时不同碰撞器发送给Collision类对象的消息如图28所示:

图28触发器触发时发送信息表

由于需要检测玩家鼠标所在的屏幕点与场景物体之间的碰撞,而鼠标无法添加

碰撞器,所以这里需要使用到射线法来进行碰撞检测。它的原理是以当前鼠标点为起点,垂直于屏幕向里画一条一定长度的射线,将这条射线穿过的物体进行标记。本实验用到的射线碰撞检测代码如图29所示:

33

图29 射线检测源代码

场景中的每一个电脑组件都附加了三个脚本ObjectMoveControl、Hit、DistanceDetect分别来控制移动、旋转和距离检测。它们的关系如图30:

图30 电脑组件的控制

34 4.9 场景音乐和按钮音乐

Unity中可以通过给一个游戏对象添加AudioSource来添加音乐文件,支持MP3、ogg等常见的音乐类型文件,AudioSource可以控制音乐的播放以及单边音效等效果。

音乐类型的文件在导入的时候,需要设置该音乐文件时一个2D音乐还是3D音乐。二者的区别在于,2D音乐无论“听者”的位置距离声源有多远,声音的大小都是不变的。3D音乐则类似现实世界中的音乐,当你离声源越近时听到的声音就越大。在本实验中,由于是给整个程序添加一个舒缓的背景音乐,所以勾选2D音乐就可以了。

上面提到“听者”的概念,在一个环境里有了声音,却没有人来听,那声音的存在就没有意义了,在Unity中也是一样。为了听到声音,需要在场景里添加一个Audio Listener。它通常作为组件添加在场景的主摄像机上。

在本系统中,我们在主场景中创建了一个名为Audio Source的空物体,并未它添加Audio Source组件,并把导入的背景音乐文件赋值到监视器里的Audio Clip上。进行到这里的时候,需要注意的是,由于背景音乐是全局的,也就是说在整个游戏的运行过程中,音乐都要存在,而Unity在加载新场景的时候,会将上一个场景内的所有物体全部销毁。为了保持音乐文件不被销毁,需要用到Unity提供的DontDestroyOnLoad()接口。这样音乐就不会被销毁了。

有的用户可能更喜欢安静一点的实验环境,所以还需要添加一个对音乐开关的控制。Audio Source组件中的Mute属性就控制着声源文件的开关。用NGUI制作一个按钮,但点击事件发生时,访问Audio Source的Mute属性并改变它即可。实现的源代码如图31所示:

35

【强烈推荐】基于Unity3D的三维虚拟电脑组装实验系统开发毕业论文设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c37bh25mcde3h0qq02ukg7f1wl0k4bu014xp_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top