坦克实训
  GdTuOLsnIlGn 2023年11月02日 53 0

一、实训目的与要求 通过本实训,基于Unity 3D和Visual Studio开发环境,使用C#语言,充分使用和综合运用《虚拟现实交互技术2》课程的所学内容,完成基于Unity3D和Gear VR的简单游戏的需求分析、设计和实现,掌握游戏的设计步骤和基本的开发流程。培养学生分析和解决问题的能力,增强学生在实践中的动手能力。 二、题目说明 2.1开发背景及意义 设计并实现了坦克大战交互系统,该系统实现了:坦克移动的控制(坦克可以自动前进),建筑物的阻挡 (模型在移动过程中会受建筑物的阻挡),炸毁道具(当坦克瞄准射击后,该目标道具消失),道具增加(增加移动速度)的功能。借助Unity游戏引擎,提升自己Unity开发能力。 2.2开发平台及工具 本系统的使用无需安装,解压后即可使用。推荐的计算机配置如下: 硬件环境:CPU要求2GHz及以上;内存要求2GB及以上; 软件环境:操作系统要求Windows XP及以上版本,并需要安装DirectX SDK 2010或更高版本。 开发环境:Unity游戏引擎 三、总体设计 3.1系统结构

  1. 建模:在Asset Store中选择坦克原型;
  2. 一条完整的街道:在Asset Store中下载相关素材,进行场景搭建;
  3. 坦克的移动控制:坦克可以在鼠标控制下自动前进;
  4. 建筑物的阻挡:坦克在移动过程中会受到建筑物的阻挡。同时,如果在目标和坦克之间有障碍物,则炮弹会被建筑物阻拦;
  5. 炸毁道具:添加目标道具,当坦克瞄准射击后,该目标道具消失;
  6. 道具:添加 “增加移动速度”、“降低移动速度”等2种功能道具,使坦克能够通过触碰来拾取道具,并获得相应的功能。 3.2系统流程图 66549269012ed879b5d4813123ea11e4625eb1.jpg ::: hljs-center

图3-1 系统流程图

::: 3.3系统优势 场景设置的合理度,交互性强,沉浸性好

四、功能模块实现 (1)坦克前行 :通过鼠标滑动实现坦克位置的更新,代码如下01.gif (2)障碍物:坦克子弹遇到障碍物不能穿透,在障碍物之前爆炸,代码如下02.jpg (3)销毁道具:子弹击中的物体消失,代码如下03.jpg 五、遇到问题和解决方法 1.摄像机问题。 旋转角度过大,视角偏移。当以坦克做为游戏玩家时,如果摄像机的视角与坦克视角偏差太大就容易产生夹角,发生视角偏移,产生晕眩的感觉,应尽量让摄像机与坦克视角持平。 2.子弹销毁道具交互问题。 子弹特效爆炸后,道具消失。GameObject. Destory (gameObject,2.0f); Destory是静态方法,是类名加点的形式调用方法中的两个参数。 3.Collider组件运用问题。 碰撞无法检测,使用合适的碰撞器,一般有(Mesh Collider, Box Collider, Capsule Collider, Wheel Collider)将Collider大小调整为不同形状,但要合适。 4.Rigidbody组件运用问题。 游戏物体下落,重力过大,游戏物体抖动,放置地面不平滑。如果让刚体(Rigidbody)静止下来以便在一段时间内不移动,他们会“入睡”。就是说,他们在物理更新过程中不会进行计算,所以它们不会前往任何位置。所以在放置玩家位置时,需与地面刚好相接,抖动较小。 5.粒子系统(Particle System)参数调整问题。 在素材包中打开发射圈特效,没找到如何播放特效,通过查找博客,了解粒子系统的常见参数意思。 六、实训总结 在我寻找Collider中Is Trigger是什么意思的时候,我找到了一篇博客最后的结论如下: 1.想要打印触发器方法,必须有一方是触发器,必须有一方带有刚体。二者缺一不可。 2.双方都是触发器,或者其中一方是触发器,另一方是碰撞器,都不会产生交互。 3.只要一方是触发器,并且有刚体组件,不管另一方是碰撞体还是触发器都会交互各自的触发器方法。 4.一般我们将触发器方法写在角色碰到的物体上,角色一般不参与触发方法。只写碰撞方法。 七、参考文献
【1】spring_dede的博客Unity 发射射线 检测销毁 ​​https://blog.csdn.net/spring_dede/article/details/122432499?ops_request​​

【2】qq_41263535的博客Unity 刚体运动物体抖动解决方法 ​​https://blog.csdn.net/qq_41263535/article/details/103967523?ops_request​​

【3】Zyt的博客Unity 相机跟随人物的几种方式 ​​https://blog.csdn.net/qq_41973169/article/details/108513961?ops_request​​ 【4】little_fat_sheep的博客【Unity3D】碰撞体组件Collider ​​https://blog.csdn.net/m0_37602827/article/details/125453517?ops_request​​ 【5】Unity虚拟仿真的博客Unity API(六):Rigibody ​​https://blog.csdn.net/wkhabc/article/details/52269177?ops_request

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

GdTuOLsnIlGn
作者其他文章 更多