登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 电子信息类 > 电子信息工程 > 正文

基于Unity3D引擎的射击游戏设计与实现毕业论文

 2020-04-12 16:14:16  

摘 要

随着移动游戏市场的蓬勃发展,Unity3D引擎由于其方便的跨平台特性受到越来越多的重视,其占据的市场份额也在不断上升。在2015年Unity5发布后,其强大的功能不仅使其在移动端受到开发者欢迎,在电脑游戏开发领域也越来越受到青睐。在游戏开发之外的许多需要进行3D运算的领域,Unity3D引擎发挥的作用也越来越大。

本文介绍了使用Unity3D制作一个3D射击游戏的全部过程。首先对Unity3D引擎做了简单介绍,然后对游戏需要实现的功能和所需使用的资源进行了需求分析,最后对游戏设计的全部过程进行了详细描述。其中所需要的脚本采用C#语言编程,实现了控制角色动作、摄像机控制、开火等较为复杂的逻辑功能。

关键词:Unity3D;3D引擎技术;3D射击游戏

Abstract

With the booming development of the mobile game market, Unity3D engine has attracted more and more attention due to its convenient cross-platform feature, and its market share is also increasing. After the release of Unity5 in 2015, its powerful functions not only made it popular with developers on the mobile side, but also became increasingly popular in the field of computer game development. The Unity3D engine is playing an increasingly important role in many areas that require 3D computing besides game development.

This paper introduces the whole process of making a 3D shooting game with Unity3D. Firstly made a brief introduction to the Unity3D engine, and then on the game needs to implement function and use of the resources needed for the demand analysis, finally the whole process of game design were described in detail. The script required is programmed in C# language, which realizes complex logical functions such as controlling role action, camera control and firing.

Key words: Unity3D; 3D engine technology; 3D shooting game

目录

第1章 绪论 1

1.1研究背景 1

1.2研究目的及意义 1

第2章 Unity3D介绍 2

2.1 Unity3D简介 2

2.2 Unity3D特点 2

第3章 需求分析 3

3.1游戏背景 3

3.2主角需求 3

3.2.1主角控制 3

3.2.2角色生命值状态 3

3.2.3角色攻击判定 3

3.2.4子弹设定 3

3.2.5玩家视角设定 4

3.3敌对角色需求 4

3.3.1敌对角色行动方式 4

3.3.2敌对角色攻击方式 4

3.3.3敌对角色受伤与死亡判定 4

3.4场景物品需求 5

3.4.1墙体设计 5

3.4.2油桶设计 5

3.5系统UI需求 5

3.5.1页面设计 5

3.5.2角色状态显示 6

第4章 游戏设计 7

4.1地面设计 7

4.1.1地面模型 7

4.1.2地面纹理设计 7

4.2墙面设计 9

4.2.1墙面模型 9

4.2.2墙体纹理设计 10

4.3天空纹理设计 11

4.4可操作角色设计 12

4.4.1可操作角色模型 12

4.4.2可操作角色的位置移动及朝向 12

4.4.3可操作角色的动画设置 13

4.4.4可操作角色的物理组件 14

4.4.5子弹设计 16

4.4.5角色开火控制 19

4.4.6摄像机控制 21

4.4.7可操作角色的生命状态 21

4.5敌对角色设计 22

4.5.1敌对角色模型 22

4.5.2敌对角色动画设置 22

4.5.3敌对角色的受击 24

4.5.4敌对角色行动逻辑 24

4.6油桶设计 26

4.6.1油桶模型 26

4.6.2油桶爆炸设计 26

4.6.3油桶作为动态障碍物 28

4.7场景搭建与UI设计 29

4.7.1场景切换逻辑 29

4.7.2菜单场景搭建 29

4.7.3游戏场景搭建 30

4.7.4 场景的切换 32

第5章 总结与展望 34

参考文献 35

附录A 程序代码 36

附A1 Player 36

附A2 Monster 40

附A3 Barrel 45

附A4 UIMgr 46

附A5 SuccessSwitch 47

附A6 Wall 48

附A7 FollowCam 49

附A8 Fire 49

附A9 Bu11et 51

致谢 52

第1章 绪论

1.1研究背景

随着计算机技术的不断发展,电子游戏的玩法也越来越多样化。在1993年美国游戏公司idsoftware发售了史上第一款第一人称射击游戏《德军总部3d》后,这种新的游戏类型就迅速席卷了全球。与传统的《银河战士》式的2d横板射击游戏不同,《德军总部3d》让玩家以游戏角色的视角进行游戏,从而极大的增强了游戏的刺激感与代入感。尽管这款运用2d游戏引擎的“伪3d”游戏还不能称之为3d射击游戏,但它毫无疑问的为未来的射击游戏指明了发展方向。

现如今,经过二十多年的发展,3d射击游戏已经成为最为流行的游戏类型之一,不仅诞生了《毁灭战士》、《使命召唤》、《质量效应》等经典系列,还出现了《绝地求生》这样火爆一时的后起之秀,在丰富人们的文娱生活的同时为社会创造了巨大的财富。不仅如此,像《武装突袭》这样的军事模拟游戏甚至被选为美国军方的训练软件。因此研究3d射击游戏具有十分重要的意义。

本次毕业设计主要使用unity3d游戏引擎,作为一款跨平台的游戏引擎,Unity3d有着兼容性强,跨平台,上手快等优点,开发者不需要掌握过于复杂的算法就可以顺利使用,因此受到了许多开发者的欢迎,现已成为最热门的游戏引擎之一[8]

1.2研究目的及意义

本次研究通过设计并实现一个3d射击游戏的实践,研究了三维引擎技术,并对其技术特点、应用价值进行了分析,对unity3d采用的C#常用指令进行了介绍,提出了一个可行的3d射击游戏的实现流程。

本次毕业设计的目的在于3d射击游戏的实现,玩家可以使用键盘控制角色移动躲避怪物的追击,鼠标瞄准和射击从而对怪物进行打击,同时还需要实现记分板以记录玩家的积分,生命值系统以判断角色的生存状态,判断怪物的生存状态等。

第2章 Unity3D介绍

2.1 Unity3D简介

Unity3D是一款由丹麦Unity公司于2005年推出的跨平台游戏开发工具。从设计伊始,这款游戏开发工具就以易于使用为目标,成功的获得了许多游戏开发者尤其是手机游戏开发者和独立游戏开发者的青睐,在移动端拥有极高的市场占有率,超过半数的3d手机游戏均通过Unity3D开发完成[7]。经过多年的发展,Unity3D已成为游戏开发领域尤其是手机游戏开发领域不可或缺的存在[14]

2.2 Unity3D特点

(1)多平台

这是Unity最大的优势。自2008年Unity for iPhone发布以来,Unity支持的平台涵盖了移动平台、桌面平台、游戏主机平台、虚拟现实与增强现实平台等几乎所有主流平台,且切换平台十分方便[2]

(2)集成开发环境

在Unity集成开发环境中,开发者可以实现场景设计、编程、调试等开发游戏的整个过程,为开发人员提供了相当的便利[9]

(3)所有开发功能免费

非商业用途的个人版本Unity3D是免费且提供全部功能的,作为学习者可以免费使用Unity3D的全部功能。这毫无疑问为初学者提供了很大的帮助[14]

(4)内置地形编辑器

Unity内置的地形编辑器可以让开发者方便快捷得创建各式各样的地形[14]

(5)内置物理引擎

Unity3D内置了NVIDIA的PhysX物理引擎,开发者只需要进行相关操作并输入相应的参数就可以方便的模拟许多物理效果,不需要进行多余的编程,降低了许多需要使用物理特效的项目的工作量[15]

第3章 需求分析

3.1游戏背景

游戏设定在一个充满着敌对生物的迷宫一般的星球上,玩家需要操控角色击败怪物,并找到迷宫的出口。

3.2主角需求

3.2.1主角控制

在游戏过程中,玩家可以使用键盘控制角色移动,鼠标控制角色朝向并控制开火[13]。在此过程中,需要读取键盘与鼠标的输入信息以确定角色的行动方式[13]

3.2.2角色生命值状态

在游戏过程中,玩家会不断受到怪物的追击,在受到打击超过一定程度时,判定角色死亡,游戏结束。判定角色状态的方法是在游戏一开始为玩家设定一个生命值,在玩家受到打击时降低生命值,在生命值降到0以下时判定角色死亡[15]

3.2.3角色攻击判定

在玩家进行攻击时,需要根据玩家朝向决定攻击角度,从而判断子弹发射的方向。在玩家按下鼠标左键时,在角色的“枪口”处生成一个向前运动的物体作为“子弹”,从而完成角色的攻击动作。

3.2.4子弹设定

在子弹生成后,由于场景中存在不同物件,在子弹射中后应该产生不同的效果,因此每一颗子弹都应该有自己的逻辑,以实现不同的效果。

3.2.5玩家视角设定

由于场景中包含迷宫设计,为了使玩家更好的判断周边环境,同时降低玩家的眩晕感,游戏采用第三人称视角,即玩家以可以观察到角色的视角进行游戏[1]。在此过程中,玩家的视角可以以角色为轴心进行旋转,但摄像机始终与游戏角色保持一个固定的距离,令游戏角色始终处在屏幕中央而又不至于遮挡视线。

3.3敌对角色需求

3.3.1敌对角色行动方式

在游戏过程中,设定敌人会自动追击一定范围内的玩家,这样玩家就可以选择逃避敌人或与之交战[15]。因此,需要判断敌人与玩家的位置,并将敌人的行动速度设为略低于玩家。同时,敌人还应该具有自动回避障碍物的能力,否则将出现怪物穿透障碍物的不合理的情况。

3.3.2敌对角色攻击方式

为了降低游戏难度,与玩家不同,敌对角色的攻击方式采用近战方式。在玩家与敌对角色近距离接触时,敌对角色开始对玩家进行挥臂攻击。敌对角色的手臂击打到玩家控制的角色的身体时,判定攻击有效。因此,需要判断敌对角色的手臂是否与玩家发生碰撞,并且需要判断该碰撞是否是在敌对角色进行击打时发生的。

3.3.3敌对角色受伤与死亡判定

在敌对角色接触到玩家发射出的子弹时,需要判定敌对角色受伤。与主角相同,判断敌对角色状态的方法是为敌对角色设置生命值系统在生命值清零时,判定敌对角色死亡[15]。与此同时,为了让玩家直观的得到怪物的信息,需要为怪物设置受伤状态与死亡动画。在怪物受到打击时,需要调用受伤动画,让玩家感受到本次打击是否有效;在敌对角色死亡时,需要调用死亡动画,给玩家该目标已失去威胁的信息,同时需要取消该敌对角色的全部其他逻辑,以免敌对角色的“尸体”对玩家造成伤害。

除此之外,敌对角色还会受到场景内放置的油桶的伤害。在油桶爆炸时,在爆炸冲击波范围内的敌对角色均会受到伤害。

3.4场景物品需求

场景内除角色之外的物品包括障碍物与可以与玩家产生交互的物品。这里主要包括墙体与可以引爆并对敌对角色产生伤害的油桶。

3.4.1墙体设计

在游戏中,墙体的作用是标定游戏区域,引导玩家与敌对角色的路径。因此,需要将墙体设置为不可穿过的实体。与此同时,为了增强画面表现力,当玩家射击墙体时,墙体应该产生相应的效果。

3.4.2油桶设计

在游戏中,玩家可以射击油桶引爆同时对多个敌人造成伤害。因此,在每个油桶被引爆时,可以自动侦测“爆炸冲击波”内的全部敌人并对其造成伤害。与此同时,还应该对每个油桶设定爆炸效果,增加游戏表现力。

3.5系统UI需求

3.5.1页面设计

在游戏一开始,打开的是系统的主页面,其中包含开始游戏、游戏帮助等按钮,玩家按下不同的按钮,即可进入不同的页面。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图