基于Unity的射击类游戏开发.docx

上传人:b****3 文档编号:2173918 上传时间:2022-10-27 格式:DOCX 页数:38 大小:8.06MB
下载 相关 举报
基于Unity的射击类游戏开发.docx_第1页
第1页 / 共38页
基于Unity的射击类游戏开发.docx_第2页
第2页 / 共38页
基于Unity的射击类游戏开发.docx_第3页
第3页 / 共38页
基于Unity的射击类游戏开发.docx_第4页
第4页 / 共38页
基于Unity的射击类游戏开发.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于Unity的射击类游戏开发.docx

《基于Unity的射击类游戏开发.docx》由会员分享,可在线阅读,更多相关《基于Unity的射击类游戏开发.docx(38页珍藏版)》请在冰豆网上搜索。

基于Unity的射击类游戏开发.docx

基于Unity的射击类游戏开发

基于Unity的射击类游戏开发

随着社会科技水平和经济水平的迅速发展,虚拟现实技术逐步的迈入人们生活,其涉及的领域十分广泛,在商业、游戏等有着惊人的发展,正因为如此Unity3D作为一款虚拟3D开发的软件正在逐步升温,他以其跨平台的优势,良好的界面环境,强大的功能设计渐渐的被广大虚拟现实的设计者们所使用。

本文详细介绍了采用unity3D软件,设计一个射击类游戏,模仿的是现实坦克的射击,并在此基础上发挥制作者的创新力和设计能力。

Unity3D开发软件是一款多平台的综合性的开发工具,Unity相似于Director,Blendergameengine,Virtools等使用交互的图型化的集成开发环境为首要处理方式的软件,其编辑器能够运行在时下主流的Windows和MacOSX下,制作的成品可发布至Windows、Mac、Wii、iPhone以及安卓平台。

该软件支持的语言包括C#,JS等高级脚本语言。

其功能强大,API丰富,因此开发者们不必要去自己写相关的方法,这样就给与开发者们更多创新的时间与空间。

本游戏界面简单友好,游戏内容丰富,功能包括坦克的开炮,移动,游戏中还包括敌人,道具的获得和技能的使用等。

目  录

第一章绪论

1.1引言

无论是3D化的谷歌地图,还是现在脍炙人口3D游戏,甚至是集娱乐和运动于一体的室内体感游戏,这一切都是虚拟现实技术的应用。

如今的社会,不仅仅是游戏,3D技术已经被广泛的开发并且用作商业应用,比如模拟车展,火箭升空,3D旅行等,因此,在3D虚拟如此盛行的今天,用Unity3D做一款3D游戏也算是赶上时代的脉搏了。

Unity3D其开发的综合性平台和其丰富的脚本语言,开发界面友好,功能强大等有利因素,被我选择作为制作一款射击类游戏的开发工具。

通过对3D游戏的设计,来充分了解虚拟现实在社会中的应用以及如何将该技术广泛的应用在各大领域。

该软件的各项功能,让我发现了很多游戏以及3D技术使用的影子。

比如我们了解的第三人称与第一人称之间的来回切换,在U3D中完成这一操作仅仅只要对摄像机使用脚本语言来回切换,因为U3D丰富并强大的API使得原本在虚拟世界中看起来复杂的行为变得简单易得,这就是U3D为什么如此火的原因。

在本篇论文中,第一章主要介绍了虚拟现实的使用领域、发展和研究内容,第二章主要介绍了完成该游戏所用的到软件以及涉及到的技术知识,第三章主要介绍了系统的需求分析、系统的整体设计和详细设计,第四章主要介绍了游戏完成的整个过程、游戏的创意性设计、游戏的打包和导出。

第五章主要介绍游戏运行结果。

1.2研究内容

运用Unity3D软件,结合photoshop、3Dmax等基础的使用方法,完成一个简单的设计类游戏,该游戏涉及到得是坦克的现实模拟,能够使模型完成开火等一系列的运动方式,并在此基础上做一些创新性的实施。

1.3本章小结

本章主要介绍了3D虚拟技术的应用领域和现状,Unity3D开发3D游戏的优势以及本文主要的研究内容。

第二章技术介绍

2.1Unity3D软件概述

Unity3D(以下简称U3D)是一款3D跨平台次世代游戏引擎。

1)提供了非常完美的跨平台系统。

平台之间的差别常常会影响到产品的开发速度和进度,因此大部分开发者们要在这上面花费大量的时间,而unity则能在近10种主流平台之间完美移植。

2)提供了多种脚本语言编译的常用环境,并且可以根据需求将默认的编译环境做出调整。

Unity3D支持C#、Javascript、Boo三种脚本语言。

3)提供了一个交互良好的操作界面,能够完美的在windows和MacOS下部署。

该软件自带的五个工程视图框架能够让你很好的观察你制作游戏的进程。

Unity3D丰富的API能够帮你完成各种想要完成的需求。

它的界面系统能够更好的帮助设计者分类游戏中的对象。

其中包括project视图,该视图主要存放游戏中的资源文件,hierarchy视图主要放置游戏场景中具体的游戏对象,inspector视图主要来描述游戏资源的信息,scene视图主要存放游戏中模型资源,game视图是用来观察已经完成的游戏运行成果。

2.2C#介绍

MicrosoftVisualC#(读作Csharp)是一种常用的编程语言。

C#语法很简单、功能非常强大、类型相对安全,并且是面向对象的。

C#凭借着它创新的心法,在保证C语言样式的表现方式的同时,完全实现了应用程序的相对快速的开发,该语言作为U3D中的脚本语言能够更好的符合他面向对象的特征。

2.3Visualstudio2010

Visualstudio2010(以下简称VS10)是微软公司自主推出的开发环境。

其中它支持了最新的集成开发环境。

VS10也带来了NETFramework4.0、MicrosoftVisualStudio2010CTP并且支持开发者面向win7的应用程序开发。

除了MicrosoftSQLSever,它还支持IBM,Oracle数据库等。

2.4Photoshop简介

AdobePhotoshop,简称“PS”,是由AdobeSystems开发并发行的一款图像处理软件。

Photoshop主要用来处理以像素所构成的数字图像。

使用其丰富的修改编辑工具与绘图工具,可以更高效良好的进行图片编辑工作。

2.53dsMax简介

3DStudioMax,简称为3dsMax或MAX,是discreet公司开发的一款基于PC操作系统的三维动画渲染和三维对象制作软件。

其前身是基于DOS操作系统的3DStudio软件。

在windowsNET出现之前,专业级的CG制作被SGI图形工作站所垄断。

3DStudioMax+WindowsNT组合的出现瞬间就降低了CG制作的难度,软件初始时是运用于电脑游戏中制作动画,后进一步用于参与影视片中的特效制作。

 

2.6系统开发运行环境

操作系统:

MicrosoftWindowsXP

开发环境:

Unity3D3.5.5

开发工具:

MicrosoftVisualStudio2010Photoshop3dsmax9.0

开发语言:

C#语言

2.8本章小结

本章主要介绍了制作射击类游戏所用到得开发工具、开发语言和所用到得相关技术以及系统开发运行的环境。

第三章系统的需求分析和设计

3.1需求分析

游戏需要一个开始界面用来开始游戏、了解游戏的玩法、以及退出游戏,初始界面至少要有这三个选项。

场景的设计以及各种触发事件,并且在此基础上有所创新。

在游戏的GUI上面有主角的血条,装填炮弹,还有一些创新性的技能设计,让游戏更加丰富多彩。

游戏中还应该存在敌人,敌人会主动瞄准主角并攻击。

3.2系统的设计

3.2.1系统的开始界面设计

系统包括场景1和场景2。

场景1中所要设计的就是游戏的开始界面。

界面中包含了3个按钮,分别完成各项功能。

按钮1)开始游戏:

用来进入场景2,即进入游戏。

用户只要通过鼠标按下该按钮,就可以载入所要进行的游戏。

按钮2)游戏帮助:

用来进入帮助界面。

帮助界面主要用来告知玩家如何进行游戏等等注意事项。

为一些刚解除该游戏的玩家提供帮助。

按钮3)退出游戏:

主要用来退出游戏。

3.2.2系统的场景设计

系统中的场景2就是我们所要进行游戏的场景。

场景中包含的对象有:

1)地形:

对象都放在这上面。

还包括一些植物和水池。

2)主角对象:

这里的主角对象是一辆坦克,包括了坦克的移动、开火、还有与其相关联的GUI。

3)敌方对象:

这里的对象包括的敌方的坦克,炮台等,他们都有自己的AI。

4)特殊道具:

有些特殊道具可以被摧毁。

有些特殊道具可以被拾取并触发有意思的事件。

3.3本章小结

本章对该游戏进行了一些需求和系统的分析,整体列出来了该游戏中所要包含的一切对象,下一章就是要具体设计这些对象并给予逻辑命令。

第四章游戏系统的实现

4.1Unity3D软件的界面

图4-1Unity3D界面

Unity3D的交互界面非常友好,并且能够变换多种视图分布方式直到你找到最合适自己的分布方式。

工具栏中的window->Layouts里面有很多分布选项。

4.2游戏开始界面制作

图4-2创建工程

在制作开始界面之前,我们应该创建一个工程,在工具栏中选择File->Newproject菜单项,之后则会弹出ProjectWizard,选择CreatenewProject,在ProjectDirectory中点击Set按钮设置游戏工程保存路径与项目名称,然后再点击Importthefollowingpackages中引入系统提供的标准资源包。

为了更好的将对象分类,我们首先应该在project视图中创建几个文件夹名字分别为界面,在界面字文件夹中再创建贴图文件夹,这些文件夹用来分类放置你所需要的东西。

我们在网上搜索了几张开始界面以及游戏结束的背景图,放在贴图文件夹中以便制作背景时使用。

在制作背景之前,我们首先应该将U3D默认的脚本编辑器设置为VS10,在Edit中的preference中可以设置。

我们在project中创建一个C#脚本。

首先我们使用GUI.DrawTexture(newRect(0,0,Screen.width,Screen.height),textureBG)方法来给整个屏幕附上textureBG贴图,rect方法是用来创建一个矩形框,它的参数表示Rect(距离左边屏幕的距离,距离上边屏幕的距离,举行的宽,矩形的高),这是制作界面背景的一种方法。

然后我们使用状态机的方法来给界面设计他的执行按钮所要完成的需求。

在我们创建一个C#脚本的时候,已经默认的继承MonoBehaviour接口,因此在VS10中会自动生成两个方法,分别为voidstart()函数,该函数用来给游戏刚开始时给对象赋予的操作,只在项目开始的时候执行一次,voidupdate()函数式在每一帧都执行这里面的代码。

我们在游戏的脚本代码中给摄像机赋予了4种状态机,分别是当前画面状态,开始后的状态,按下帮助后的状态,按下退出后的状态,分别给这些状态写了方法,即mainmenu(),helpmenu(),quitmenu()。

具体脚本代码和结果如图4-3所示:

usingUnityEngine;

usingSystem.Collections;

publicclassjiemian:

MonoBehaviour{

privateconstintgame_main=0;

privateconstintgame_start=1;

privateconstintgame_quit=2;

privateconstintgame_help=3;

publicGUISkinmySkin;

publicTexturetextureBG;//背景贴图接口

publicTexturetexturetuichu;//退出贴图

publicTexturetexturebangzhu;

privateintgamenow;//当前游戏状态

voidStart(){

gamenow=game_main;

}

voidOnGUI()

{

switch(gamenow)

{casegame_main:

mainmenu();

break;

casegame_start:

Application.LoadLevel("场景1");

break;

casegame_help:

helpmenu();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1