卢杰-基于Unity3D的坦克大战游戏的设计与实现

合集下载

Unity引擎方式下3D对战型游戏的网络设计与开发

Unity引擎方式下3D对战型游戏的网络设计与开发
服务器端的交互使用是通过 Socket 进行网络传输。玩
家的所有需要与服务器端的操作都变为请求,请求通过
逐步丰富,除了 PC 以外,平板电脑、智能手机以及电视
后服务器端会给客户端发送请求回调事件,客户端接收
新体验,也对传统网络游戏有效地进行了扩充,进而推
1
机等,均可以成为游戏终端,这些设备提供的新玩法与
文献标识码:A
Network design and development of 3D fighting game based on Unity engine
HUANG Wei
(Wuchang University of Technology,Wuhan 430223,China)
Abstract:Unity is a game engine,which has strong cross ⁃platform ability. The game can be installed in PC,WP,IOS,
Unity engine is introduced, and the implementation scheme that how to select the heartbeat detection and serialization way in on⁃
line game of high real⁃time performance to realize data synchronism and information transmission is discussed.
更应该根据功能进行划分。本游戏服务器系统架构如
图 1 所示。其具体划分应遵循如下原则:
(1)分离游戏中占用系统资源(CPU,内存,I/O 等)

unity案例入门(二)(坦克大战)

unity案例入门(二)(坦克大战)

unity案例⼊门(⼆)(坦克⼤战)1. 案例简述这个案例实现⼀个简单的坦克对战游戏,两个玩家在⼀个地图上PK。

2. 控制坦克移动与案例⼀中⼩球的移动⽅式不同,坦克在横向上不能是平移,因此横向按键控制的应该是坦克旋转。

public float speed = 5;//前进速度public float angularSpeed = 5;//旋转速度private Rigidbody rd;void Start () {rd = this.GetComponent<Rigidbody> ();}void FixedUpdate(){float v = Input.GetAxis ("VerticalPlayer" + number);//⾃定义虚拟轴rd.velocity = transform.forward * v * speed;//根据情况需要在刚体组件Constraints冻结相应position或rotationfloat h = Input.GetAxis ("HorizontalPlayer" + number);rd.angularVelocity = transform.up * h * angularSpeed;}(1)与Update()不同,Update()⽅法是游戏每渲染⼀帧调⽤⼀次,调⽤的频率会受机器影响,⽽FixedUpdate()是每隔⼀定时间间隔调⽤⼀次,调⽤的频率不受机器影响。

因此,为了得到更逼真的物理效果,在模拟物理运动时,⼀般选择在FixedUpdate()中。

(2)由于游戏中有两个玩家,asdw和⽅向键需要控制两个不同⾓⾊,因此需要⾃定义虚拟轴,位置是:Edit->Project Setting->Input。

(3)根据实际情况,需要在刚体组件中的Constraints进⾏相应的Freeze操作。

基于Unity平台的三维坦克游戏设计与实现

基于Unity平台的三维坦克游戏设计与实现

基于Unity平台的三维坦克游戏设计与实现作者:李慎亮司占军来源:《软件导刊》2015年第08期摘要:为了解Unity与三维建模软件的兼容问题,以及游戏的基本制作流程,以90坦克为原型,在3D Max中进行了建模、UV分展。

在PS 中进行贴图制作,在Gold Wave中进行音乐切分制作;在Unity中综合运用各种资源,结合AI、刚体检测等技术实现了碰撞检测、键盘检测、爆炸等效果,最终制作出了一款操作性好、画面精良、具有一定趣味性的3维TPS游戏。

关键词:TPS;Unity;三维游戏;坦克游戏DOIDOI:10.11907/rjdk.151403中图分类号:TP319文献标识码:A 文章编号文章编号:16727800(2015)0080152030 引言计算机软硬件技术的发展水平越来越高,画面简单、立体感差的二维平面游戏正在淡出人们的视野。

立体感强、操作性好、画面精美的三维游戏越来越受到玩家和游戏厂商的喜爱。

虚拟现实、体感检测等技术的发展更是为游戏产业的发展提供了良好的技术支持。

本文以三维坦克游戏的开发过程为例,介绍了Unity平台与其它软件之间的关联以及注意事项。

1 游戏设计为了让游戏情节更好地展开,增加游戏的趣味性,本次实验设计了山区狙击战、城镇街道战及工厂会战3种游戏场景,游戏设计如图1所示。

2 预期效果(1)键盘监听。

能够监听键盘上的按键,根据玩家按下的不同按键作出相应反应。

例如按下A、S、W、D键会让坦克向左、右、前、后行驶。

(2)摄像头跟随。

摄像机跟随游戏中的角色移动。

摄像机要有广阔的视野,以便玩家能够及时了解游戏的变化。

(3)坦克AI(人工智能)。

标识为敌人的坦克能够在地图范围内随意走动,且能够自主判断在其范围内的其它坦克是否为敌人。

(4)爆炸效果。

坦克的炮弹射出后击中目标产生爆炸效果,同时播放爆炸音效,模拟真实的爆炸情景。

(5)炮台转向。

坦克静止后,坦克炮台随着鼠标的移动在一定角度范围内转向。

基于Unity3D引擎的游戏设计与开发

基于Unity3D引擎的游戏设计与开发

基于Unity3D引擎的游戏设计与开发引言近年来随着计算机物理硬件的提升以及社会经济的进步,游戏技术也得到了空前的发展。

无论是游戏引擎还是玩法,都得到了长足的进步。

Unity是一款由Unity科技公司所设计的可跨平台的2D与3D游戏引擎,其支持开发Windows 等电脑平台、任天堂Switch等主机平台以及Android等移动设备的各种游戏,以及基于WebGL技术的网页平台以及TVOS等多媒体平台。

塔防是指通过在地图上建造各种各样的炮塔来阻止游戏中的敌人抵达指定位置的实时战略计算机游戏,此类游戏的目标是生存若干时间或尽可能生存下去。

玩家一般有生命值,生命值以敌人数量为基准,如果敌人在到达指定地点之前没有被消灭,玩家就会减少生命。

随着怪物波次的增加和炮塔属性的逐渐提升,怪物的数量、属性以及各种特殊能力也会提升。

目前国内外许多专家在Unity平台研发了多种游戏,如伍传敏等人基于Unity3D完成了第一人称射击游戏的设计与开发。

张典华等人基于Unity3D实现了多平台兼容的三维空战游戏。

刘晋钢等人则研究了Unity3D与Kinect整合数据技术在体感游戏中的应用价值。

本文通过C++设计并实现了一款基于Unity3D引擎的TowerDefence游戏,实现了怪物AI设置,攻击检测算法的设计以及游戏特效和渲染管道等关键技术。

游戏运行流畅,画面精良,操作简单,体验丰富,上线后收获大量好评。

1 游戏设计1.1 塔防游戏设计策略本文的塔防游戏玩法设计遵循以下原则:(1)玩家放置的障碍物可以在障碍物摧毁基地之前伤害或杀死敌方攻击者。

(2)修复障碍物的能力。

(3)升级障碍物的能力。

(4)能够修复障碍物的升级。

(5)用于购买升级和维修的某种货币(可以是时间,游戏内货币或经验值,例如通过击败攻击单位而获得的货币)。

(6)能够一次穿越多条路径的敌人。

(7)每波通常有固定数量和类型的敌人。

(8)许多现代的塔防游戏都从实时游戏发展到回合游戏,其中存在不同的阶段,例如构建,防御,修复和庆祝。

Unity坦克大战游戏设计

Unity坦克大战游戏设计

Unity坦克大战游戏设计Unity坦克大战游戏设计一、简介随着科技的发展,游戏成为了人们娱乐生活中不可或缺的一部分。

而Unity作为一款强大的游戏开发引擎,给游戏设计师带来了无限的可能性。

本文将重点介绍使用Unity进行坦克大战游戏设计的过程。

二、游戏背景坦克大战游戏是一种经典的射击对战游戏,早在上世纪80年代就开始流行。

游戏背景通常设定在战争时期,玩家需要操纵自己的坦克与其他玩家或敌人进行对战。

通过击败敌人或完成特定任务来获得胜利。

三、游戏设计1. 游戏场景设计游戏的场景可以设置在不同的环境中,如城市、沙漠或森林等。

通过精心设计的地形和障碍物,增加游戏的挑战性和可玩性。

2. 坦克模型设计在游戏中,玩家需要选择一个坦克模型来操纵。

可以设计多种类型的坦克,如重型坦克、轻型坦克或支援坦克等。

每种坦克都有自己的优势和弱点,玩家可以根据自己的喜好选择合适的坦克。

3. 控制与操作玩家可以通过键盘或手柄控制坦克的移动和瞄准,同时可以发射炮弹进行攻击。

通过巧妙的操作技巧和策略,玩家可以击败敌人并取得胜利。

4. 敌人设计为了增加游戏的难度和挑战性,设计一定数量的敌人与玩家进行对战。

可以设置敌人的智能程度和战斗能力,让玩家感受到真实的对抗。

5. 游戏规则设定设计游戏的胜利条件和失败条件,给玩家明确的目标。

可以设定击败所有敌人或完成特定任务为胜利条件,从而激发玩家的游戏动力。

6. 游戏界面设计游戏界面应简洁清晰,显示玩家的血量、弹药数量和游戏得分等信息。

同时可以设计一些额外功能,如暂停、设置等,提供更好的用户体验。

四、游戏开发流程1. 学习Unity首先,需要学习使用Unity引擎进行游戏开发的基本知识。

可以通过阅读相关教程、参加培训课程或观看视频教程等方式学习。

2. 坦克模型制作使用3D建模软件,如Blender或Maya,制作坦克模型,并导入到Unity中进行调整和优化。

可以为坦克添加贴图和特效,增加游戏的视觉效果。

卢杰_基于Unity3D的坦克大战游戏的设计与实现

卢杰_基于Unity3D的坦克大战游戏的设计与实现

毕业实训报告课题名称:基于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并优化项目指导教师签字:年月日实训单位意见签章:年月日学院意见签章:年月日中原工学院毕业实训评审表学号201560190410姓名卢杰专业软件技术RZ软技班级154题目基于Unity3D的坦克大战游戏的设计与实现指导教师评语成绩(百分制):指导教师签名:年月日摘要本文利用Unity3D跨平台功能的突出、兼容性强的特点,结合C#开发一款坦克大战的游戏系统,该系统运行流畅,具有较好的可玩性和跨平台性。

在PC端运行的坦克游戏,在毕业设计完成时,坦克模型应该能再PC端运行。

游戏中,我们可以利用鼠标、键盘来对我们的坦克进行前进后退,而且可以对坦克进行旋转以及发射炮弹,通过这次设计,自己也体验了技术实现的过程。

关键词:Unity3D;坦克大战游戏;游戏引擎目录摘要........................................... . (V)第1章项目概述..................................................... (1)1.1项目背景.............................................. (1)1.2技术路线.............................................. (1)1.2.1游戏设计与制作阶段 (1)1.2.2开发环境............................................... (1)1.3项目设计目标................................................. (2)第2章系统设计..................................................... (3)2.1系统的整体设计.................................................. (3)2.2系统的界面设计.................................................. (3)2.2.1游戏主菜单................................................ .. (3)2.2.2游戏帮助界面............................................... . (4)2.2.3游戏结束界面............................................... . (4)2.2.4游戏主界面................................................ .. (5)2.2.5主角模型............................................... .. (5)2.2.6敌人模型............................................... .. (6)游戏地图模第3章游戏菜单界面实现...................................................83.1 按钮的实现............................................................8 3.2 游戏主菜单界面的实现..................................................83.2.1 说明按钮..........................................................8 3.2.2 退出按钮. (8)3.2.3 游戏开始按钮...................................................... 8 3.3 游戏帮助界面的实现....................................................93.3.1 关闭按钮 (9)3.3.2 游戏帮助文字...................................................... 9 3.4 游戏结束界面的实现....................................................93.4.1 重新开始按钮............................................... (9)3.4.2 退出游戏按钮..................................................... 10 3.4.3 分数显示.........................................................10 3.5 游戏主界面的实现.....................................................103.5.1 重置按钮.........................................................10 3.5.2 退出按钮 (10)3.5.2 游戏得分 (11)第4章游戏主界面实现....................................................12 4.1 场景的搭建...........................................................124.2 主角的功能实现 (12)....4.2.1 移动.......................................... (12)4.2.2 攻击.......................................... (12)4.2.3 受到伤害............................................ (13)4.3 摄像机的功能实现.....................................................144.3.1 移动.......................................... (14)4.3.2 围绕主角旋转.............................................. (14)4.3.3 视野的拉近或拉远.................................................154.4 敌人的功能实现................................................. (15)4.4.1 生成.......................................... (16)4.4.2 移动.......................................... (16)4.4.3 攻击.......................................... (17)4.4.4 受伤.......................................... (18)4.5 炮弹的碰撞检测................................................. (18)4.5.1 炮弹的身份 (18)4.5.1 碰撞检测 (19)第5章系统测试.................................................... (20)5.1在U3D中运行测试 (20)NITY5.2 在PC中运行测试.................................................. (20)测试结第6章结束语.................................................... (24).. ..第1章项目概述1.1项目背景随着社会的科技水平和经济水平的迅速发展,游戏行业以迅雷不及掩耳之势快速的发展着。

UnityD游戏引擎实战开发入门到精通(坦克大战项目实战NGUI开发GameObject)

UnityD游戏引擎实战开发入门到精通(坦克大战项目实战NGUI开发GameObject)

本课程是怎么样地一门课程<全面介绍)1.1、课程地背景现如今游戏已经成为了人们生活中不可或缺地一部分.不经意间,你在公交上,在地铁里,在商场中,办公室里,都可以看到各式各样地人在用不同地途径玩着各种各样地游戏.可以说,游戏是一个前景非常美好地行业.有PC端地玩家,有网页端地玩家,也有移动端地玩家.他们可以通过不同地途径来娱乐自己喜欢地游戏,走到哪里,都可以看到这些已经渗入到人们地生活里了.那么从程序地角度,要实现这些不同平台地互通,我们要怎么实现呢?如何通过一次编码,全平台运行呢?Unity3D就是本着这样地需求而诞生地.b5E2RGbCAPUnity3D可以让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容地多平台地综合型游戏开发工具,是一个全面整合地专业游戏引擎.已经实现了跨平台.可以在移动端,pc端和网页端互通了.一次编码,发布不同平台就可以了.所以现在Unity3D也成为开发人员地首选编程语言了.其制作3D游戏,也就分分钟地问题.非常地方便.易懂易学.通过Unity简单地用户界面,玩家可以完成任何工作.这些为玩家节省了大量地时间.p1EanqFDPw 所以本课程将通过实例来讲解Unity3D地开发过程.由浅入深地,让学者快速地掌握Unity3D开发地要领及Unity3D地知识点.达到快速开发地目地.DXDiTa9E3d1.2、课程内容简介本课程由浅入深地介绍Unity3D地开发流程.从软件使用到API接口地使用,从成品到优化.介绍整个Unity3D地基本开发过程及开发中碰到地基础问题进行深入讲解.对代码重构及代码优化做出示例,让学员能逐步地了解Unity3D开发地注意点.讲解Unity3D软件界面地使用,Unity3D组件地介绍,使用C#编写Unity3D及Unity3D GUI<NGUI)地介绍和游戏简单AI地编写,让学员能够把握Unity3D开发地方向,成为一名合格地游戏开发人员.RTCrpUDGiT1.3、讲师介绍多年网游开发工作经验,现任国内某大型网游公司担任Unity3D核心工程师,精通C++、C#语言,对Unity3D引擎有着深刻地理解并熟练使用引擎地各个模块 ,多年来主要致力于网络小游戏地开发,大型网页游戏,Arpg网页游戏,SNS社交游戏,棋牌类游戏等,在游戏开发领域有丰富地工程实战经验.5PCzVD7HxA更多免费资料可加群106537671二、为什么需要这么套课程?2.1、企业需要什么?说明:以下企业需求职位均来自于51job2.2、课程学习目标(我们提供什么?>目标一. 可以让学员快速上手掌握如何使用Unity3D软件使用目标二. 可以让学员迅速了解Unity3D游戏开发流程目标三. 可以让学员迅速掌握Unity3D相关知识点目标四. 可以让学员熟练使用C#编写Unity3D开发目标五. 了解C#事件机制目标六. 使用NGUI进行界面开发目标七. 熟练使用Unity3D进行游戏发布2.3、课程特色特点一、讲师具有一线地实战经验与丰富地教案经验,课程即讲解案例实现思路、理论与原理又讲解实战技巧与注意事项,即照顾到基顾学员,又照顾到有一定实战经验想要提高自己地学员.jLBHrnAILg特点二、在每节开始之前先简单回顾上一节所讲地主要内容,并对本节所讲地内容先进行概述,讲解概念、技术要点,设计实现思路等内容,最后总结本次课程地要掌握地要点,讲师授课采用先理论,后实战地方式,由浅入深,符合人们接受知识地自然规律.xHAQX74J0X特点三、学习地过程中学员要理论和实践相结合,讲过地代码学员自行完成修改和调试,以巩固加深学习效果.2.4、课程亮点技术亮点一:Unity3D引擎开发零基础入门技术亮点二:认识GameObject技术亮点三:组件由浅入深地介绍技术亮点四:NGUI开发使用技术亮点五:地形系统技术亮点六:预置模块技术亮点七:游戏简单AI技术亮点八:游戏物体地组装介绍技术亮点九:游戏环境设置技术亮点十:游戏发布注意事项3.课程真心不错,我可以学吗?本课程适合于想从事Unity3D开发地人员.无需Unity3D基础,只要拥有编程基础即可.本课程由浅入深地介绍Unity3D地开发流程.从软件使用到API接口地使用,从成品到优化.介绍整个Unity3D地基本开发过程及开发中碰到地基础问题进行深入讲解.对代码重构及代码优化做出示例,让学员能逐步地了解Unity3D开发地注意点.LDAYtRyKfE讲解Unity3D软件界面地使用,Unity3D组件地介绍,使用C#编写Unity3D及Unity3D GUI<NGUI)地介绍和游戏简单AI地编写,让学员能够把握Unity3D开发地方向,成为一名合格地游戏开发人员.Zzz6ZB2Ltk4.我该怎么学,如何才能学好这门课程,给些建议.4.1、时间上地安排建议本课程共20讲,如果您时间上充分,建议以每天3-4讲地进度往前学习.如果您是上班族或您已经有一定地基础了,可以先把C#回顾下.dvzfvkwMI14.2、学习要求如果您没有基础,建议还是中规中矩地按照课程进度一点一点仔细观看学习,并一定要把看完地视频中地代码自己手敲一遍,以加深理解和记忆rqyn14ZNXI如果您有基础,可不必按步就搬进行,可以拿你感兴趣地部分去学习,但一定要注意实践,并学会举一反三4.3、讲师建议建议:1.最好看完视频之后,抛开视频,独立自己去把上课中地示例写一遍,看自己是否理解,如果不正确,可以回过头看再看下视频,如果反复,达到真正理解和熟练掌握地目地.EmxvxOtOco2.对于工程实战部分,一定要自己亲自动手做一遍,不要满足听完就OK了3. 建议一般听视频,一般拿个纸和笔,做一些记录和笔记,这是一种非常好地学习习惯.4. 一定不要过于依赖视频,要学会看API和使用百度,学会思考,学会举一反三5. 最后祝您学有所成5.学完这门课程后能做什么?学会该课程后,您可以结合您自己公司地业务逻辑做出内似以下地工程出来:本课程是属于某个特定地专业技术,掌握该技术后,你可以从事以下职位地相关工作Unity3D开发工程师.6.学员常见问题:常见问题一:学这个课程需要什么基础?讲师回答:拥有一定编程基础地,了解基本C#编程语法地人员常见问题二:这种技术一般可用在什么场合?讲师回答:Unity3D使用范围广泛.可以使用在室内漫游,游戏开发,应用软件开发全景视图等常见问题三:学完这项技术可以从事地工作岗位有哪些?讲师回答:由于3D技术不断地成熟和流行,越来越多地公司使用3D 技术开始做相关地应用和游戏.学完这个技术,我们可以从事一切和3D有关地软件游戏需求.如,室内漫游,全景预览,游戏开发等SixE2yXPq5个人收集整理资料,仅供交流学习,勿作商业用途。

基于Java的坦克大战游戏的设计与实现毕业设计论文

基于Java的坦克大战游戏的设计与实现毕业设计论文

基于Java的坦克大战游戏的设计与实现摘要:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。

游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。

坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。

游戏通过分析JA V A游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket 来完成client端和server端的连接。

玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁全部敌方坦克来取得胜利,操作非常简单,还具有非常高的普遍率,适合所有人群玩。

该游戏既满足了人们的个性化需求,也让玩家在游戏过程中丢掉烦恼,尽情地释放压力。

关键词:Java 坦克大战游戏SocketThe Design and Implementation of The Java Based Tank War GameAbstract:As people demand higher quality of life every day, in order to make people better dig their own wisdom, the game into the public vision, in people's lives have a vital position, has become an indispensable part. The game industry to promote the upgrading of high-tech, which greatly promoted the economic growth, and promote the "fourth industry" economic take-off. Tank war game is often played in childhood, but also the classic game. Game through the analysis of JA V A game development and code design, with Eclipse software developed a tank war game, the use of interface technology, so that a class can achieve multiple interfaces, the use of socket Socket to complete client and server side of the connection. Players access the game through the connection, through the manipulation of tanks to guard the base, the eradication of all enemy tanks to win, players can also get super weapons to enhance the properties of the tank, the operation is very simple, suitable for people of all ages to play. The game not only meets the individual needs of people, but also allows players to lose trouble in the course of the game, enjoy the pressure to release.Key words: Java; Tank war game; SocketII目录1.引言 (1)2.系统分析 (1)2.1需求和技术分析 (1)2.2功能分析 (2)3.总体设计 (2)3.1总体功能 (2)3.2坦克大战总体流程图 (4)4.详细设计 (5)4.1面板功能设计 (5)4.2子弹功能设计 (8)4.3坦克功能设计 (9)4.4服务器设计 (10)4.5客户端设计 (13)5. 游戏测试 (15)5.1测试方法 (15)5.2系统测试 (15)5.3测试分析和小结 (17)6.结论 (18)参考文献 (18)1.引言随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可以玩,在玩游戏的过程中能够体验现实生活中没有的快乐,既有利于身心健康,又不会影响工作和学习。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业实训报告课题名称:基于Unity3d的坦克大战游戏的设计与实现专业:软件技术班级: RZ软技154学号:************学生姓名:**指导教师:赵冬2017年5月15日关于卢杰同学的实训鉴定同学于年月日至年月日在我公司部门进行了毕业实训。

在实训中,该同学在单位签章:指导教师签字:年月日中原工学院毕业实训任务书中原工学院毕业实训评审表摘要本文利用Unity3D跨平台功能的突出、兼容性强的特点,结合C#开发一款坦克大战的游戏系统,该系统运行流畅,具有较好的可玩性和跨平台性。

课题题目为基于Unity3D的坦克大战游戏的射击与开发,旨在成功的设计出一款可以在PC端运行的坦克游戏,在毕业设计完成时,坦克模型应该能再PC端运行。

游戏中,我们可以利用鼠标、键盘来对我们的坦克进行前进后退,而且可以对坦克进行旋转以及发射炮弹,通过这次设计,自己也体验了技术实现的过程。

关键词:Unity3D;坦克大战游戏;游戏引擎目录摘要 (V)第1章项目概述 (1)1.1项目背景 (1)1.2技术路线 (1)1.2.1 游戏设计与制作阶段 (1)1.2.2 开发环境 (1)1.3项目设计目标 (2)第2章系统设计 (3)2.1系统的整体设计 (3)2.2系统的界面设计 (3)2.2.1 游戏主菜单 (3)2.2.2 游戏帮助界面 (4)2.2.3 游戏结束界面 (4)2.2.4 游戏主界面 (5)2.2.5 主角模型 (5)2.2.6 敌人模型 (6)2.2.7 游戏地图模型 (6)第3章游戏菜单界面实现 (8)3.1按钮的实现 (8)3.2游戏主菜单界面的实现 (8)3.2.1 说明按钮 (8)3.2.2 退出按钮 (8)3.2.3 游戏开始按钮 (8)3.3游戏帮助界面的实现 (9)3.3.1 关闭按钮 (9)3.3.2 游戏帮助文字 (9)3.4游戏结束界面的实现 (9)3.4.1 重新开始按钮 (9)3.4.2 退出游戏按钮 (10)3.4.3 分数显示 (10)3.5游戏主界面的实现 (10)3.5.1 重置按钮 (10)3.5.2 退出按钮 (11)3.5.2 游戏得分 (11)第4章游戏主界面实现 (12)4.1场景的搭建 (12)4.2主角的功能实现 (12)4.2.1移动 (12)4.2.2攻击 (12)4.2.3受到伤害 (13)4.3摄像机的功能实现 (14)4.3.1移动 (14)4.3.2围绕主角旋转 (14)4.3.3视野的拉近或拉远 (15)4.4敌人的功能实现 (15)4.4.1 生成 (15)4.4.2 移动 (16)4.4.3 攻击 (17)4.4.4 受伤 (17)4.5炮弹的碰撞检测 (18)4.5.1 炮弹的身份 (18)4.5.1 碰撞检测 (18)第5章系统测试 (20)5.1在U NITY3D中运行测试 (20)5.2在PC中运行测试 (20)5.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)功能重新开始按钮的功能是回到游戏主界面,也就是切换到游戏主界面(2)代码public void OnResetButtonClick(){SceneManager.LoadScene("Main");}3.4.2 退出游戏按钮(1)功能退出游戏按钮的功能是将游戏退出(2)代码public void OnExitButtonClick(){Application.Quit();}3.4.3 分数显示(1)功能分数显示是在游戏结束后将数据保存下来,切换到游戏结束场景后将数据读取并显示出来,然后将分数归0。

(2)代码using UnityEngine.UI;public Text score_Text;void Start(){score_Text.text = "最终得分为:" + PlayerPrefs.GetString("分数") + "分";PlayerPrefs.SetString("分数", "0");}3.5 游戏主界面的实现3.5.1 重置按钮(1)功能重置功能按钮是将游戏回到刚开始游戏的样子,也就是重新加载本场景(2)代码public void OnResetButtonClick(){SceneManager.LoadScene("Main");}3.5.2 退出按钮(1)功能退出按钮的功能是回到游戏结束的界面,也就是将场景切换到游戏结束的场景。

(2)代码public void OnQuitButtonClick(){SceneManager.LoadScene("GameOver");}3.5.2 游戏得分(1)功能当击杀一个敌人后变增加分数,并且保存分数,将分数显示出来(2)代码public void ScoreAdd(){score.text = "分数:" + scoreNum + "分";PlayerPrefs.SetString("分数", scoreNum.ToString());}第4章游戏主界面实现4.1 场景的搭建将Unity资源包(后缀名为.unitypackage)导入到项目当中,导入的方式为直接拖拽资源包至Project面板下,然后选择全部导入。

导入后选择场景模型,拖拽至Hierarchy面板,将模型的Transform组件Reset,场景的搭建就完成了。

4.2 主角的功能实现首先在导入的资源包中找到主角模型,将其拖拽至Hierarchy面板。

4.2.1移动(1)实现思路在主角身上添加Rigidbody刚体组件,使用刚体组件通过horizontal轴和vertical轴来运动,W、S控制主角的前进和后退,A、D控制主角的左右旋转。

相关文档
最新文档