unity3d小游戏开发(星空大战)毕业实训报告大学论文

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

毕业实训报告

课题名称: Unity 游戏开发

专业:移动开发

班级:

学号:

学生姓名:

指导教师:

年月日

中原工学院

毕业实训任务书

摘要

摘要游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。Unity3D是一个3D/2D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。

本文主要是以Unity5.3.8为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的3D游戏,并通过Unity3D选择平台生成可执行文件。但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计.

第1章项目分析

1.1 Unity 及其组成的介绍

本书主要讲解的是,如何使用 Unity 开发 2D 游戏。但在开始讲解之前,最好先熟悉一下Unity 这个工具。本章会首先介绍 Unity 的下载和安装,然后会介绍 Unity 界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。

1.2 Unity 概述

Unity 现如今已是非常的流行,因此在开始学习 2D 游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。 1.Unity 简介 Unity 是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种 2D 和 3D 游戏,然后部署到各种游戏平台上。当然也包括这些主流游戏平台: Windows、 iOS、 Android、 Xbox 360、 PS3。

第2 章

2.1 需求分析

玩家:控制游戏中的战机,向敌机发出攻击;

敌机:敌机不会发射子弹攻击玩家,boss敌机由程序控制自动向玩家飞机发出攻击

子弹:玩家和boss 敌机都拥有自己的子弹,玩家的子弹可以用来攻击所有的敌机

子弹礼包:玩家飞机得到子弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能炸弹礼包:玩家飞机得到子弹礼包后,玩家飞机如果使用炸弹可以清除屏幕上除boss外的所有敌机。

2.2 功能需求:

1》用户进入游戏开始菜单可以选择开始游戏,退出游戏,游戏帮助;

2》进入游戏后可暂停游戏

3》玩家飞机以一定速度自下而上飞行,用户可以控制飞机前后左右移动

4》玩家飞机一直发子弹,用户通过控制飞机位置来扫描敌机;

5》不同种类的敌机以一定速度随机出现;

6》玩家飞机的发射子弹击中敌机后消失。

7》玩家飞机达到一定分数后,程序会随机提供子弹包和炸弹包;》

8》玩家与礼包碰撞后即可得到礼包;

9》弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能

10》进行游戏时,屏幕左上角会显示用户达到的分数;

2.3 用户功能需求

由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。一般用户经过几分钟后就可以掌握游戏规则。

2.4 游戏性能需求

1)实时性:本应用为手机游戏对于用户操作必须做出立即响应,否则本游戏失败

2)单机手机游戏最大的特点纪委已操作行,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏规则。这是本应用对于操作性的要求。

2.5 游戏流程:

如图2.5-1

第3章场景设计

3.1.创建游戏场景

1.由于创建的是2d项目,则将图片拖入Scene中,该图片自动成为一个精灵,所以将图片信息拖入摆放即可。

如图3-1-1 所示

2.下面创建一个GameManager文件,其绑定在摄像机中,主要负责飞机生命,玩家得分,背景播放等的显示功能。而生命,得分的显示需要我们创建GUIText来摆放。

public enum GameState{

Runing,

Pause

}

public class GameManager : MonoBehaviour {

public static GameManager _instance;

public int score=0;

private GUIText guiText;

public GameState gameState = GameState.Runing;

void Awake(){

_instance=this;

guiText=GameObject.FindGameObjectWithTag("ScoreGUI").GetComponent();

}

// Update is called once per frame

void Update () {

guiText.text="Score:"+score;

}

public void transfromGameState(){

if(gameState==GameState.Runing){

pauseGame();

}else if(gameState==GameState.Pause){

continueGame();

}

}

3.然后我们来实现背景的滚动。首先创建两个一样的背景图片上下摆放,如下图所示,这里切换到3d 模式,更加形象

如图3-1-3

4.下面创建用于绑定在背景上的脚本BackgroundTransform,代码如下

相关文档
最新文档