毕业实训报告课题名称:基于Unity3d的坦克大战游戏的设计与实现专 业: 软件技术 班 级: RZ软技154 学 号: 201560190410 学生姓名: 卢杰 指导教师: 赵冬 2017年 5月 15日关于卢杰同学的实训鉴定 同学于 年 月 日 至 年 月 日在我公司 部门进行了毕业实训在实训中,该同学在单位签章:指导教师签字: 年 月 日中 原 工 学 院毕 业 实 训 任 务 书 2017 年2月13日学生姓名卢杰学号201560190410专 业软件技术班级RZ软技154课题名称基于Unity3D的坦克大战游戏的设计与实现课题来源实训公司指导教师张鑫宇,李星辰第二个应该写我专业Unity3D职称讲师课题说明: 该系统利用Unity3D跨平台功能的突出、兼容性强的特点,结合C#开发一款坦克大战的游戏系统,画面好看,游戏方式简单,玩家易上手。
承担的任务: 寻找素材搭建场景,并编写相应功能的代码这个太简单了工作进度安排: 第4周 :(3月6号-3月10号)确定题目 第5周:(3月13号-3月17号)寻找素材 第6周:(3月20号-3月24号)对相应功能进行编码 第7周:(3月27号-3月31号)对相应功能进行编码 第8周:(4月3号-4月7号)查找BUG并优化项目任务要写到第13周指导教师签字: 年 月 日实训单位意见签章: 年 月 日学院意见签章: 年 月 日中 原 工 学 院毕 业 实 训 评 审 表学号201560190410姓名卢杰专业软件技术班级RZ软技154题目基于Unity3D的坦克大战游戏的设计与实现指导教师评语成绩(百分制): 指导教师签名: 年 月 日摘 要本文利用Unity3D跨平台功能的突出、兼容性强的特点,结合C#开发一款坦克大战的游戏系统,该系统运行流畅,具有较好的可玩性和跨平台性。
课题题目为基于Unity3D的坦克大战游戏的射击与开发,旨在成功的设计出一款可以在PC端运行的坦克游戏,在毕业设计完成时,坦克模型应该能再PC端运行游戏中,我们可以利用鼠标、键盘来对我们的坦克进行前进后退,而且可以对坦克进行旋转以及发射炮弹,通过这次设计,自己也体验了技术实现的过程关键词: Unity3D; 坦克大战游戏; 游戏引擎 目 录摘 要 V第1章 项目概述 11.1 项目背景 11.2 技术路线 11.2.1 游戏设计与制作阶段 11.2.2 开发环境 11.3 项目设计目标 2第2章 系统设计 32.1 系统的整体设计 32.2 系统的界面设计 32.2.1 游戏主菜单 32.2.2 游戏帮助界面 42.2.3 游戏结束界面 42.2.4 游戏主界面 52.2.5 主角模型 52.2.6 敌人模型 62.2.7 游戏地图模型 6第3章 游戏菜单界面实现 83.1 按钮的实现 83.2 游戏主菜单界面的实现 83.2.1 说明按钮 83.2.2 退出按钮 83.2.3 游戏开始按钮 83.3 游戏帮助界面的实现 93.3.1 关闭按钮 93.3.2 游戏帮助文字 93.4 游戏结束界面的实现 93.4.1 重新开始按钮 93.4.2 退出游戏按钮 103.4.3 分数显示 103.5 游戏主界面的实现 103.5.1 重置按钮 103.5.2 退出按钮 113.5.2 游戏得分 11第4章 游戏主界面实现 124.1 场景的搭建 124.2 主角的功能实现 124.2.1移动 124.2.2攻击 124.2.3受到伤害 134.3 摄像机的功能实现 144.3.1移动 144.3.2围绕主角旋转 144.3.3视野的拉近或拉远 154.4 敌人的功能实现 154.4.1 生成 154.4.2 移动 164.4.3 攻击 174.4.4 受伤 174.5 炮弹的碰撞检测 184.5.1 炮弹的身份 184.5.1 碰撞检测 18第5章 系统测试 205.1 在Unity3D中运行测试 205.2 在PC中运行测试 205.3测试结果 23第6章 结束语 24第1章 项目概述1.1 项目背景随着社会的科技水平和经济水平的迅速发展,游戏行业以迅雷不及掩耳之势快速的发展着。
现在的游戏行业和电影行业可以说已经站在同一高度,特别是3D技术的进步使得游戏在人们的日常生活中占据着重要的地位在3D技术如此盛行的今天,游戏引擎收到的关注也持续高涨,目前主要的引擎有BigWorld引擎、Unreal Engine3虚幻引擎、Gamebryo引擎、Unity3D引擎相对于前三种引擎来说,Unity3D是最近几年才流行起来,但它由于完美的跨平台系统使他迅速的在引擎市场占据了重要的地位本文将介绍一款以Unity3D为开发平台,结合C#的坦克大战游戏系统,该系统在保证运行效果的同时,具有设备要求低,跨平台性能好,运行流畅稳定的特点1.2 技术路线1.2.1 游戏设计与制作阶段在游戏设计的阶段就要想好这款游戏的大概内容,主题鲜明,并且具有良好的游戏乐趣,游戏内容丰富,符合我们日常生活中的逻辑规律1.2.2 开发环境Unity3DUnity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品作为一个完全集成的专业级应用,Unity还是功能强大的游戏引擎Unity3D是一个让你轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎C#语言C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些他们的复杂特性(例如没有宏以及不允许多重继承)C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、-优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言1.3 项目设计目标 本游戏应该具备如下界面和功能:(1) 界面设计的美观2) 主角进行移动和碰撞检测3) 敌人自动寻路以及自动攻击(4) 敌人的死亡与主角的死亡第2章 系统设计2.1 系统的整体设计游戏系统设计主要包含主菜单界面、主场景和游戏结束场景这三大模块组成其中在主菜单界面和游戏结束场景界面实现了按钮的点击事件;主场景是该游戏的主体,主角和敌人的逻辑都在该场景中实现游戏的流程图如图2.1所示:图2.1 游戏流程图要去掉图的背景2.2 系统的界面设计2.2.1 游戏主菜单游戏主菜单如图2.2所示界面设计思路要用文字描述出来,不能只给个图啊!:图2.2 游戏主菜单2.2.2 游戏帮助界面游戏帮助界面如图2.3所示:图2.3 游戏帮助界面2.2.3 游戏结束界面游戏结束界面如图2.4所示:图2.4 游戏结束界面2.2.4 游戏主界面图2.5 游戏主界面2.2.5 主角模型主角模型如图2.6所示:图2.6 主角模型2.2.6 敌人模型敌人模型如图2.7所示:图2.7 敌人模型2.2.7 游戏地图模型游戏地图模型如图2.8所示:图2.8 游戏地图模型第3章 游戏菜单界面实现本章包括按钮的制作和游戏介绍、帮助界面。
这些事关联在一起的,通过点击对应的按钮来达到对应场景的切换它们的制作主要利用UGUI(Unity3D的内置组件)来实现的3.1 按钮的实现(1)按钮是由Image组件(需添加Button脚本,该脚本为Unity3D内置脚本)和Text组件结合实现的2)按钮的点击功能,在每个Button脚本下都有一个OnClick()(点击事件)方法可以绑定点击后需要实现的方法然后将每个按钮的方法绑定上去即可实现按钮功能3.2 游戏主菜单界面的实现3.2.1 说明按钮(1)功能说明按钮的功能是将游戏说明界面显示出来,也就是切换到游戏说明界面场景2)代码如下 public void OnIntroButtonClick() { SceneManager.LoadScene("StartUI_Intro");}3.2.2 退出按钮(1)功能退出按钮的功能是将游戏退出2)代码如下 public void OnExitButtonClick() { Application.Quit(); }3.2.3 游戏开始按钮(1)功能游戏开始的功能是进入游戏主场景,也就是切换到游戏主场景。
2)代码如下 public void OnStartButtonClick() { SceneManager.LoadScene("Main");}3.3 游戏帮助界面的实现3.3.1 关闭按钮(1)功能关闭按钮的功能是关闭游戏帮助界面,回到游戏主菜单,也就是切换到游戏主菜单2)代码 public void OnCloseButtonClick() { SceneManager.LoadScene("StartUI");}3.3.2 游戏帮助文字界面上的文字描述,主要是利用UGUI中的Label来实现在Text属性里输入需要显示的内容,即可显示出来如图3.1所示:图3.1 游戏帮助Text3.4 游戏结束界面的实现3.4.1 重新开始按钮(1)功能。