首页 > 其他分享 >坦克实训

坦克实训

时间:2023-01-02 15:07:00浏览次数:40  
标签:触发器 Collider 道具 Unity 实训 net 坦克

一、实训目的与要求 通过本实训,基于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

标签:触发器,Collider,道具,Unity,实训,net,坦克
From: https://blog.51cto.com/u_15500834/5983697

相关文章

  • 坦克大战1.0,java时间处理机制
    1.java绘图坐标体系1.1坐标体系-介绍下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个......
  • 入驻紫光展锐坦克邦,向“芯”出发,共建共赢
    坦克邦是紫光展锐生态线上支持平台,具备独立为客户提供从需求定义到项目量产的全流程技术支持能力。自成立以来,坦克邦已整合1500多名全栈技术领域工程师和多家头部技术服务商......
  • C++面向对象程序设计实训(实习)[2022-12-25]
    C++面向对象程序设计实训(实习)[2022-12-25]面向对象程序设计实训(实习)PracticalTrainingofObject-OrientedProgramming1、实习基本要求(1)学生自由组1人小组按照以下要......
  • 博奥智源,公共实训基地信息化系统及网站维护细节说明
    公共实训基地网站信息系统优化升级改造项目通过两期的建设并在实际的使用过程中根据管理员和用户的实际需求,对系统平台进行了优化完善和提升,系统主要功能如下:1、实训单位......
  • 【Unity】超级坦克大战(二)游戏流程
    更新日期:2020年7月9日。项目源码:在终章发布索引​​本章最佳实践​​​​正式开始​​​​登录流程​​​​准备流程​​​​关卡选择流程​​​​闯关流程​​​​启用所......
  • 【Unity】超级坦克大战(三)登录界面
    更新日期:2020年7月9日。项目源码:在终章发布索引​​本章最佳实践​​​​正式开始​​​​创建UI编辑场景​​​​创建登录界面UI实体​​​​创建登录界面UI逻辑类​​​......
  • 【Unity】超级坦克大战(一)搭建项目、导入框架、前期开发准备
    更新日期:2020年7月9日。项目源码:在终章发布免责声明:超级坦克大战使用的图片、音频等所有素材均有可能来自互联网,本专栏所有文章仅做学习和教程目的,不会将任何素材用于任何......
  • 苏嵌实训——day13
    文章目录​​零、概述​​​​一、文件IO​​​​1.1学习IO的前提​​​​1.2IO是什么​​​​1.3如何使用IO​​​​1.4IO的分类​​​​1.5文件IO的接口​​​​1.6......
  • 第八章python实训
    实验报告【实验目的】 1.掌握Python内置的标准模块和第三方模块的使用。【实验条件】1.PC机或者远程编程环境。 【实验内容】1.完成第八章  文件及目录操作实......
  • 基于MFC/WIN32写的坦克游戏
    基于MFC/WIN32写的坦克游戏本着学习的目的,最近尝试着编写一个游戏,整个项目使用MFC/WIN32来编写。未采用游戏引擎,主要的原因是想从基础出发,在重复造轮子的过程当中学习体会他......