Unity3d射击游戏报告

合集下载

基于unity3D的FPS游戏

基于unity3D的FPS游戏

p本科毕业设计(论文)基于Unity3D的FPS游戏Basic Unity 3D FPS game毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。

对本文的研究做出贡献的个人和集体,均已在论文中作了明确的说明。

本人完全意识到本声明的法律结果由本人承担。

毕业论文作者(签字):签字日期:年月日成绩评定注:毕业设计(论文)成绩按百分制评定。

答辩成绩不及格的(评分低于60分的),则该毕业设计(论文)总评成绩为答辩成绩。

内容摘要FPS游戏,又称为第一人称射击游戏。

相信很多用户对于这一个类型的游戏都很熟悉。

这一款游戏的核心在于射击,项目将围绕这一个核心进行设计和开发游戏自身的基础设计这一模块,在音效和动画特效着重设计。

在听觉和视觉这一块让玩家有更好的体验,本文主要讲述在使用Unity3D引擎和C#编程语言的过程中,如何开发和设计一款受欢迎的第一人称射击游戏,第一人称视角的移动、枪支的射击原理和特效构思,背包系统和UI的设计,编辑敌人的AI寻路和攻击。

□关键词:Unity3D 射线检测 C# AIAbstractFPS Games, also known as first-person shooter. I'm sure many users are familiar with this type of game. The core of this game is shooting, around this core point to design is the core of this project. The game itself is based on the design of this module, with emphasis on sound and animation effects. This article focuses on how to develop and design a popular first-person shooter in the context of using the Unity3D engine and the c # programming language, first Person Perspective Movement, gun shooting principles and special effects concepts, backpack systems and UI design, editing enemy AI pathfinding and attacks.Key words:Unity 3D Radiographic examination C# AI目录第一章概述 (9)1.1游戏类型 (9)1.2游戏开发环境和运行环境 (9)1.3内容概述 (9)1.4核心概念 (9)1.5游戏故事 (9)1.6游戏角色 (9)1.7游戏世界 (10)1.8游戏规则 (10)1.9文档目的 (10)第二章游戏结构 (11)2.1 每个模块中的方法和主要成员变量 (11)2.1.1 GameManager模块 (11)2.1.2 UI模块 (11)2.1.3 BirthEnemy模块 (11)2.1.4 Player模块 (11)2.1.5 Enemy模块 (12)第三章游戏过程 (14)第四章主要系统 (15)4.1动画系统 (15)4.1.1角色动画 (15)4.1.2敌人动画 (16)4.2声音系统 (18)第五章游戏的主要设计 (20)5.1角色的设计和第一人称视角的运用 (20)5.1.1角色的创建 (20)5.1.2角色的控制 (20)5.1.3第一人称相机的控制 (21)5.2 敌人的设计 (22)5.2.1敌人的导航网格寻路和行为判断 (22)5.2.2敌人的生成、死亡和销毁机制 (23)5.3 场景效果设计 (24)5.3.1场景渐影渐射 (24)5.4 方法的封装 (25)5.5枪的设计 (27)5.5.1枪支的设计 (27)5.5.2射线检测原理 (28)5.6 商城系统 (28)5.6.1商城系统的规范设计 (28)5.6.2 商城的操作流程 (30)第六章游戏界面 (33)6.1 开始界面 (33)6.2 游戏界面 (33)6.3 胜利界面 (34)6.4 失败界面 (34)第七章 Unity操作 (36)7.1 设置刚体和碰撞检测器 (36)7.2 挂载脚本 (36)7.3 配置音频文件 (36)7.4 配置动画系统 (36)第八章总结 (37)8.1 总结目的 (37)8.2 制作游戏出现的问题总结 (37)8.3 心得体会 (37)8.3.1 对 Unity2D 学习的体会 (37)8.3.2 设计实现的体会 (38)8.3.3程序设计中的体会 (38)参考文献 (39)致谢 (40)第一章概述1.1游戏类型第一任人称射击游戏1.2游戏开发环境和运行环境开发环境:Windows 10 系统Unity 2018 Visual Studio2012运行环境:PC, Mac & Linux Standalone1.3内容概述游戏类型是:第一人称射击游戏,玩家可控制主角上下左右移动,跳跃蹲下装弹,击败目标敌人就可以获得游戏的胜利完成通关。

基于Unity3D的TPS游戏的设计与开发

基于Unity3D的TPS游戏的设计与开发

滨江学院学年论文题目基于Unity3D在PC端的TPS游戏的开发与设计院系电子系专业电子信息工程学生姓名杨鑫学号***********指导教师王新蕾职称讲师二O一七年十月二十五日基于Unity3D在PC端的TPS游戏的开发与设计杨鑫南京信息工程大学滨江学院电子信息工程专业,南京210044摘要:本文详细介绍了基于Unity3D游戏引擎(个人版)的TPS(第三人称射击)游戏的开发与设计的过程,主要包括游戏开发前准备,场景的制作以及游戏角色控制,子弹发射效果,敌对角色生成的实现方法等。

并简单介绍了Unity3D引擎及其特点和资源商店的利用。

详细阐述了游戏中的各种关键C#脚本程序。

实现以键盘控制位置鼠标控制视角的人机对抗游戏模式。

游戏操作简单,人物动作细腻多变,场景氛围代入感强,给玩家良好的游戏体验。

关键词: Unity3D;TPS;C#第1章绪论1.1基于Unity游戏开发的国内外现状2016年又被称为VR元年。

虚拟现实(VR)是当今最前沿的科学技术之一,谷歌,微软,Facebook,苹果,三星,索尼等知名高科技企业对其视为上宾。

VR通过计算机虚拟出现实世界,在VR技术影响下,仿佛置身于另一个世界。

2016年,是VR技术突破性发展的一年,VR将与各行各业相互融合,产生庞大的岗位需求——VR开发工程师,而Unity已经成为VR内容开发的首选平台。

通过使用Unity引擎制作的游戏吸引了全球6亿游戏玩家。

,Facebook拥有8.29亿的日常用户。

用Unity 制作的应用和游戏目前的累计体验量已达到了87亿次。

根据Unity官方在2017年8月最新公布的数据[1],Unity中国区的开发者数量、用户活跃度和终端安装量均已经成为全球第一。

在世界范围内,Unity占据全功能游戏引擎市场份额的45%,居世界首位。

最接近我们的美国,其市场份额只有我们的三分之一。

Unity的每月全球活跃用户超过60万。

中国区每个月Unity引擎被使用的次数总和高达180万次,居世界首位。

unity3d游戏优秀开题报告

unity3d游戏优秀开题报告

unity3d游戏优秀开题报告课程: Unity3D课程设计题目:班级:学号:姓名:日期:UNITY游戏是一种新型的 IT引擎。

我们研究主要内容是UNITY游戏设计方法。

指以游戏客户端软件为信息交互窗口的旨在实现娱乐、休闲、交流和取得虚拟成就的具有可持续性的个体性单人游戏。

本报告主要讲述了这个小游戏的设计思路及初步使用Unity3D软件的感受和总结。

设计过程中,首先建立自己想要的模型,然后在此基础上进行需求迭代,详细设计时不断地修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的小游戏。

基于UNITY基础,构建了一个益智游戏风格的游戏,并有主角与关卡、游戏逻辑、游戏环境界面等设计,使得玩家可以在场景中进行寻找神龛的冒险游戏。

本游戏的控制很简单,及用键盘的WASD及SPACE五个控制人物的上下左右跳跃五个方向,用户根据自己的战略方式选择寻找油桶点亮煤油灯然后寻找神龛。

《UNITY游戏程序设计》这一课程以大作业形式进行考核,能更好地锻炼学生综合运用本课程所授知识的能力。

大作业主要内容为设计完成面向某一主题内容的游戏演示程序。

自选游戏主题,并根据所选定的主题内容设计一个典型的游戏场景及玩家逻辑,其中包含主角与关卡,游戏逻辑,游戏环境界面与交互过程等的设计;开发完成与设计相符的游戏Demo。

要求使用Unity3D游戏开发软件实现上述游戏Demo。

1、每人单独完成,特殊可由多人合作完成。

2、游戏主题自拟。

3、根据所设游戏主题、场景及玩家逻辑,实现完成相应的游戏Demo,并撰写设计开发报告。

基于视频教程“平衡球”的基础,构建了一个益智游戏风格的游戏,并有主角与关卡(一关)、游戏逻辑(触碰油桶、神龛)、游戏环境界面(通道)等设计,使得玩家可以在场景轨道中进行吃油桶、神龛的冒险游戏。

本游戏以几个环环相扣的通道作为人物运动的轨迹,在通道上分别设计一些油桶,通过电脑上的WASD SPACE分别控制人物的运动方向;如果人物运动位置没有偏离所设计通道平面而且碰触到油桶,即算初步成功,当人物吃掉所设计的油桶,油灯就会点亮。

飞机大战实训报告

飞机大战实训报告

飞机大战实训报告
本次实训是关于“飞机大战”的项目,该项目主要实现了一个简
单的单机版飞机射击游戏。

我在实训中学习了Unity游戏引擎的基础
知识和游戏开发的一些流程。

首先,我了解了Unity的基本操作,如场景编辑器、资源管理器
和游戏对象等。

在这个游戏项目中,我创建了游戏场景、添加了游戏
对象,如飞机、子弹和敌人等。

我还使用了Unity提供的一些组件,
比如射线检测和动画控制组件,来实现游戏的一些功能。

其次,我学习了游戏开发的一些基本流程,如游戏设计、关卡设
计和游戏逻辑实现等。

在学习过程中,我也尝试了一些游戏设计的方法,例如玩家死亡后重新开始游戏、通过积分系统来提高玩家动力等。

最后,在实训的过程中,我掌握了项目开发的基本过程和流程,
如需求分析、系统设计、编码和测试等。

我也意识到在项目开发中团
队协作的重要性和沟通能力的提升。

通过本次实训,我对游戏开发有了更深入的了解,也掌握了一些
基本的技能。

我相信这将对我今后的职业发展有很大的帮助。

基于Unity3d的第一人称射击游戏的实现

基于Unity3d的第一人称射击游戏的实现

摘要计算机游戏作为一种新兴的娱乐方式,已经融入到了人们的生活之中。

近年来,游戏产业己经成为经济市场中增长速度最快的热点,是众所关注的焦点。

Unity3D作为一款能跨平台的,界面友好,操作简单的工具,是一个全面整合的专业游戏引擎。

本文研究了第一人称射击游戏,即通常所说的FPS游戏。

本文基于Unity3D 引擎,使用Microsoft Visual Studio编写脚本,使用3dmax和Photoshop进行图形和建模处理工作。

通过操作模拟角色达成各种动作,完成游戏。

程序中有主菜单、暂停菜单和游戏结束菜单,能够选择重新开始游戏和退出游戏等操作。

在环境上展示了天空到陆地,森林草地到海面。

角色能够完成跳跃,行走,切换武器等基本动作,射击敌人会增加积分,拾取的物体和角色状态能显示在GUI界面上。

游戏中的敌人会自动生成并追踪玩家,在一定距离内会攻击玩家,被击败后会掉落弹药。

若玩家被敌人击败,则结束游戏并切换到游戏结束菜单。

关键词:Unity3d;Visual Studio;3dmax;Photoshop;FPS游戏ABSTRACTAs a new form of entertainment, computer games have been integrated into our lives. In recent years, the game industry has become the fastest growing hot spot in the economic market, is the focus of attention.Unity3d as a cross-platform, user-friendly, easy to operate tool, is a comprehensive integrated professional game engine.This article studies the first-person shooter game, which is commonly said FPS game. This article is based on the Unity3d engine, using Microsoft Visual Studio scripting, using the 3dmax and Photoshop the works with graphics and modeling. Through the operation of the simulation role to achieve a variety of actions to complete the game. The program has main menu, pause menu and Game End menu, can choose to restart the game and quit the game and so on. The environment shows the sky to the land, the forest meadows to the sea. The characters can jump, walk, switch weapons and other basic movements, shooting enemies will add points, pickup objects and role status can be displayed in the GUI interface. The enemy in the game will automatically generate and track the player, at a certain distance will attack the player, defeated will drop ammunition. If the player is defeated by the enemy, end the game and switch to the game end menu.Keywords: Unity3d; Visual Studio; 3dmax; Photoshop; FPS games目录1 绪论 (1)1.1 选题背景和意义 (1)1.1.1 选题的背景 (1)1.1.2 论文的研究意义 (1)1.2 第一人称射击游戏的国内外发展现状 (2)1.3 本文研究的主要目的与内容 (2)1.4 本章小结 (3)2 开发环境及主要开发工具简介 (4)2.1 Unity 3D (4)2.1.1 事件函数、脚本执行顺序和生命周期 (5)2.1.2 常用API (5)2.1.3 材质、灯光和着色器 (6)2.2 3DMAX (7)2.3 Visual Studio (8)2.4 Photoshop (8)2.5 本章小结 (9)3游戏策划 (10)3.1 游戏简介 (10)3.2游戏元素设计 (11)3.3游戏角色设计 (11)3.4游戏敌人设计 (12)3.6 本章小结 (17)4 游戏功能模块 (18)4.1 GUI模块 (18)4.1.1 主界面菜单 (18)4.1.2 游戏场景内GUI的显示 (20)4.1.4 游戏结束菜单 (23)4.2角色模块 (24)4.2.1 主角模块 (24)4.2.2 敌人模块 (26)4.3弹药模块 (28)4.3.1 弹药和弹药箱模型 (28)4.3.2 弹药安装 (30)4.4 武器模块 (31)4.4.1 武器开火实现 (31)4.4.2 武器动画实现 (32)4.4.3 瞄准缩放效果的实现 (33)4.5 本章小结 (34)5游戏测试 (35)5.1 游戏测试环境 (35)5.2主要功能实现测试 (35)5.3 测试意义 (37)6总结 (38)参考文献 (39)致谢 (40)1 绪论1.1 选题背景和意义1.1.1 选题的背景2017年,中国的游戏行业整体营业收入大约为2189.6 亿元,同比增长了23.1%。

基于Unity3D引擎的竖版飞行射击游戏的设计与实现

基于Unity3D引擎的竖版飞行射击游戏的设计与实现

基于Unity3D引擎的竖版飞行射击游戏的设计与实现The Design and Implementation of A VerticalVersion of Flight Shooting Game Basedon Unity3D Engine成绩评定摘要随着社会的不断发展,互联网在我们生活中有着不可挪动的地位,我们的生活习惯和方式也因此发生了重大的变革。

5G时代的到来,让其中的游戏行业也受益其中,越来越多的人开始改变对游戏的看法并且关注或者投身其中。

在射击类游戏中,玩家可以自由操控角色移动,闪避敌人子弹的狙击,然后发射子弹击落敌机,从而获得游戏胜利。

在这一个对抗过程中,不仅仅锻炼了玩家的反应速度,还有眼睛与手的配合,更重要的是能从每一次失败中锻炼心态,提高我们的抗压能力。

Unity3D作为一款支持多平台发布,拥有大量插件支持和操作容易适合上手的游戏开发引擎,它不仅在3D游戏制作方面突出,在2D游戏制作表现也尤为优秀。

本论文探究基于Unity3D引擎开发竖版飞行射击游戏。

游戏中具有飞机角色系统,玩家可以升级强化飞机的各类属性,敌机会随机出现,拥有追踪功能,不同的Boss拥有不同的弹幕。

游戏内设有计分系统和时间系统,给有追求的玩家提供挑战性。

本文从国内外飞行射击游戏发展背景分析研究开始,到确定游戏的设计和功能的实现,最后对游戏功能测试,校验结果表面游戏可以成功运行。

关键词:Unity3D 飞行射击游戏弹幕AbstractWith the continuous development of the society, the Internet has an immovable position in our life, and our living habits and ways have also undergone a major change. With the advent of 5G era, the game industry also benefits from it. More and more people start to change their views on the game and pay attention to or participate in it. In shooting games, players can move their characters freely, dodge sniper shots from enemy bullets, and shoot down enemy planes to win the game. In this confrontation process, not only exercise the player's reaction speed, as well as the cooperation between the eyes and hands, more importantly, can exercise the mentality from each failure, improve our ability to resist pressure.As a game development engine that supports multi-platform release, has a large number of plug-ins and is easy to operate and suitable for getting started, Unity3D not only stands out in 3D game production, but also performs particularly well in 2D game production. This paper explores the development of a vertical flight shooting game based on Unity3D engine. There is an aircraft character system in the game, the player can upgrade and strengthen all kinds of attributes of the aircraft, enemy opportunities appear randomly, have tracking function, different bosses have different barrage. The game has a scoring system and a timing system to provide a challenge for pursuing players. This paper starts from the development background analysis of domestic and foreign flight shooting games, to determine the design of the game and the realization of the function, finally to the game function test, verify the results of the surface game can be successfully run.Key Words:Unity3D Flight Shooting Game Barrage目录第一章绪论 (1)1.1背景及意义 (1)1.2课题研究现状 (1)1.3论文组织结构 (2)第二章开发工具和技术简介 (3)2.1U NITY3D游戏引擎 (3)2.1.1软件介绍 (3)2.1.2物理引擎介绍 (3)2.1.3 GUI(图形用户界面)介绍 (4)2.1.4 Unity的保存读取数据方式介绍 (4)2.1.5 Unity常用生命周期函数介绍 (4)2.2A DOBE P HOTOSHOP CC2017 (5)2.3C#语言介绍 (5)2.4V ISUAL S TUDIO 2017 (5)第三章游戏的需求分析及总体设计方案 (6)3.1竖版飞行射击游戏的需求分析 (6)3.1.1 玩家需求分析 (6)3.1.2 功能分析 (6)3.2游戏的总体方案设计 (8)3.2.1 游戏结构方案设计 (8)3.2.2 总体结构方案设计 (8)第四章游戏详细设计及实现 (10)4.1场景模块 (10)4.1.1 开始场景 (10)4.1.2 战机属性场景 (11)4.1.3 关卡选择场景 (13)4.1.4 加载场景 (14)4.1.5 游戏场景 (15)4.2战机模块 (18)4.2.1操纵模块 (18)4.2.2属性模块 (19)4.2.3外观模块 (19)4.2.4枪口子弹模块 (20)4.2.5碰撞模块 (23)4.3敌机模块 (24)4.3.1类别属性模块 (24)4.3.2枪口子弹模块 (24)4.3.3敌机AI模块 (26)4.4游戏功能模块 (27)4.4.1敌机与道具生成模块 (27)4.4.2游戏场景UI更新模块 (29)4.4.3场景跳转模块 (31)4.4.4 暂停与结束功能模块 (32)4.4.5 数据保存读取模块 (33)4.4.6战机升级模块 (35)第五章游戏导出与测试 (37)5.1游戏导出 (37)5.2游戏测试 (37)第六章总结 (39)参考文献 (40)致谢....................................... 错误!未定义书签。

Unity 3D 太空射击游戏实验报告2

Unity 3D 太空射击游戏实验报告2

实验报告:unity part2
实验人:
实验目的:深入掌握使用unity 3D,完成太空战争小游戏
实验内容:Player:发射子弹,首先在层次窗口中创建一个子弹模型capsule,当按下Space空格键时,发射子弹。

子弹:向上移动
碰撞到enemy,则二者销毁。

若没有碰撞到,且超出上边界时,也应
当销毁
碰撞
GUI显示:显示miss数目
实验结果:完成了实验要求内容。

并且能够实现多个enemy同时下落,在屏幕中显示剩余生命值,enemy和player进行了颜色美化设计。

此外还设
计了让enemy的每个大小不同以及player能够在同一水平线上循环
出现,失去一条生命值后1.5秒后出现。

实验代码和实现截图:
碰撞代码在实验报告1中已经展示
子弹:
GUI显示信息:
在同一水平线上循环出现:
整体实现效果:(enemy大小不一样)
实验心得:在经历过实验1后,此次实验深入使用了unity 3D,代码实现需要的函数更多,我们也需要更多地了解。

实验过程中较为简单的有在GUI
显示等内容,只需要对player进行设置即可,GUI的代码也很容易获
得。

真正容易出现问题的是子弹的设置。

不同于enemy和player的
直接添加,子弹需要调用perfab,所以需要进行更多的设置才能使其
和player位置同步发射,具体实现可见工程文件。

Unity 3D是个拥有丰富内容的软件,在使用过程中除了像普通面向客
户软件一样了解各个选项功能外,还要具备一定编程能力,相信以后
可以用它学习到更多!。

Unity--3D-游戏设计实验报告一

Unity--3D-游戏设计实验报告一

Unity--3D-游戏设计实验报告一Unity 3D 游戏设计实验报告一软件121 张乐梅 122516 (一)控件及背景颜色和布局代码的使用此游戏即点击按钮使物体移动点击向前移动,向前移动一定距离点击向左移动,将向左移动点击开始克隆,将克隆球体,且5秒后消失Javascrip脚本var TranslateSpeed=20;定义移动速度function OnGUI()//用于绘制GUI界面组件{GUI.backgroundColor=Color.red;if(GUI.Button(Rect(90,10,70,30),"蜷大燕遘サ蜉ィ"))//按钮位置和文字,被按下事件{transform.Translate(Vector3.forward*Time.deltaTime*TranslateSpeed);//transform为当前绑定模型的变换对象, transform.Translate()设置模型平移,Vector3标志移动方向,forWord表示向前移动,}}克隆代码:#pragma strictvar RotateSpeed=1000;var obj:GameObject;function Start () {obj=GameObject.Find("Sphere");}function Update () {}function OnGUI(){if(GUILayout.Button("开始克隆”,GUILayout.Height(50))){varclone:GameObject=Instantiate(obj,obj.transform.position,obj.transform.rotation); Destroy(clone,5);}}(二)2D贴图的绘制初始界面如图:点击加载一组贴图,则完成2D贴图的加载:实现过程及代码:在resoures文件夹中有个texture文件夹,里面放有4张图片(三)绘制动画代码及过程:。

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

Unity3D游戏开发课程设计实验报告项目名称 Gold Coin Game班级 11402小组成员唐智梁俊龙薛柯高立存姓名唐智学号 **********1.游戏说明游戏运行画面:游戏目标:收集八个硬币,得到的硬币数量会显示在右上角。

游戏菜单:按esc显示,有三个选项:继续游戏,重新开始和退出游戏。

操作:WASD控制方向,1 2切换武器,r填装弹药,空格space跳跃。

步枪状态下:鼠标右键——瞄准手枪状态下:鼠标右键——消音器2.游戏素材来源:1.开火音效:手枪与步枪开火音效来源于课堂上的实验:Fps游戏中的MachineGun开火音效。

装弹音效:来源于网络。

2.SkyBox,水,Terrain的草地和椰树等来源于课堂上的实验:Survivalland。

3.工厂模型Hangar_Full:来源于网络。

Cube的贴图:来源于网络。

4.步枪和手枪模型及其动画:来源于网络。

5.金币模型,塑料凳模型:使用3dmax软件自制。

6.显示金币数量的CoinGUI的9张图片:采用Windows画图软件绘制。

3.Unity版本:Unity 5.5.2f1 (64-bit)4. 操作步骤1.首先创建环境,Creat Empty——Environment,将课堂上做过的水的预制体Daylight Water放入到其下。

2.创建一个Terrain和三个Directional Light。

3.地形的凸起和凹陷操作界面4地形的贴图操作界面5.设置树木和草地。

7.调整好光线角度,再把工厂预制体拖到小岛上。

效果预览8.创建一个Empty,给它添加Capsule,Mesh Renderer,Characher Controller,和Rigibody。

(MouseLook和CharacterMotor以及Fpsinput均是课堂上使用过的例子,之后会用到)9.将Empty命名为MyFirstPersonController,将tag改为Player。

把主摄像机移动到该目录下。

10.在摄像机main camera下添加如下的Empty:weapon——m4a1、handgun,用来存放武器。

此外,再给camera添加skybox,选取合适的天空盒。

11.weapon添加一个js文件playerweapon,将步枪和手枪的预制体分别加到m4a1和handgun下。

Playerweapon.js主要控制武器的基本操作:开火,换弹和切换武器。

function Update () {if (Input.GetButton ("Fire1")){BroadcastMessage("fire");//对子类发送fire的信息,从而达到调用所有名为fire函数的效果}if (Input.GetButton ("reload")){BroadcastMessage("reload");}if (Input.GetKeyDown("1")) {BroadcastMessage("draw"); //按1时播放动画SelectWeapon(0);}else if (Input.GetKeyDown("2")) {SelectWeapon(1);}}function SelectWeapon (index : int) {for (var i=0;i<transform.childCount;i++) {// Activate the selected weaponif (i == index)transform.GetChild(i).gameObject.SetActive(true);// Deactivate all other weaponselsetransform.GetChild(i).gameObject.SetActive(false); }}//切换武器的函数12.给empty添加m4_preview,该文件主要负责步枪的子弹数量和开火音效播放,以及步枪的装弹。

之后添加audio source,选择开火的子弹发射音效文件。

13.添加一个UI----canvas,加入两个text,用来显示两把武器的子弹数目。

M4_preview的主要函数:function Update () {GameObject.Find("/Canvas/Text").GetComponent(Text).text=" :"+ bulletsLeft+"/∞"; //该函数可以将步枪子弹数量传递给text }function fire () {if (bulletsLeft == 0)return;if (Time.time - fireRate > nextFireTime)nextFireTime = Time.time - Time.deltaTime;// Keep firing until we used up the fire timewhile( nextFireTime < Time.time && bulletsLeft != 0) {GetComponent.<AudioSource>().Play();//每发射一枚子弹,就播放一次开火的音效FireOneShot();nextFireTime += fireRate;}Update (); //实现开枪后刷新text的子弹数量}function FireOneShot () {var direction = transform.TransformDirection(Vector3.forwa rd);var hit : RaycastHit;if (Physics.Raycast (transform.position, direction, hit, r ange)) {// Apply a force to the rigidbody we hitif (hit.rigidbody)hit.rigidbody.AddForceAtPosition(force * direction, hi t.point);if (hitParticles) {hitParticles.transform.position = hit.point;hitParticles.transform.rotation =Quaternion.FromToRotation(Vector3.up, hit.normal); hitParticles.Emit();}// Send a damage message to the hit objecthit.collider.SendMessageUpwards("ApplyDamage",damage,SendMessageOptions.DontRequireReceiver);}bulletsLeft--;m_LastFrameShot = Time.frameCount;enabled = true;// Reload gun in reload Timeif (bulletsLeft == 0)BroadcastMessage("reload");//没有子弹后自动装弹}function reload () {yield new WaitForSeconds(1); //装弹等待时间if (clips > 0) { //弹夹数量大于0时才可装弹clips--;bulletsLeft = bulletsPerClip;}Update (); //装弹完成后更新text显示的子弹数量yield new WaitForSeconds(1);}14.步枪的预制体m4animation,m4.js主要负责步枪的开火、装弹等动画播放。

给它添加一个audio source,选择下载的武器换弹音效。

15.手枪的步骤和步枪类似,就不在阐述,不同处如需要修改开火的速率(fire rate)等参数即可。

16.添加两个武器的贴图到显示弹药的text的左侧,再添加一张背景图,调整好位置后效果如图:17.添加菜单:在canvas中添加一个panel,在panel下添加三个button,分别对应退出,重新开始和继续,再添加一个text,内容为“已暂停”。

18.添加一个empty命名为_GM,给他添加Manager.cs,一个负责菜单的文件。

其主要部分如下:void Start (){UIPanel.gameObject.SetActive(false);isPaused = false;}void Update (){if(Input.GetKeyDown(KeyCode.Escape) && !isPaused)Pause();else if(Input.GetKeyDown(KeyCode.Escape) && isPaused) UnPause();}public void Pause(){isPaused = true;UIPanel.gameObject.SetActive(true);Time.timeScale = 0f;}public void UnPause(){isPaused = false;UIPanel.gameObject.SetActive(false);Time.timeScale = 1f; }public void QuitGame(){Application.Quit();}public void Restart(){Application.LoadLevel(0);}主要负责对应菜单的按钮的功能之后,给三个按钮加上相应的贴图和文字,在OnClick一栏中,选择_GM,在右侧下拉选择之前manager中对应的函数,比如退出游戏的Quit按钮就选择QuitGame。

另外,编辑Panel的image,可以更改菜单的背景图片。

效果如图19.建立cube的预制体:创建一个3d object,建立一个cube,再放在预制体的文件夹perfabs里,再更改cube的贴图为黑色,命名为cube_dead,同样拖入perfabs中。

给预制体cube添加一个Damage Reciver,使它能接收到子弹的伤害,从而从cube转换成cube_dead。

同时,勾选中is kinematic,让这个预制体被子弹击中前不受到里的影响,这样可以把cube悬空而不掉落,而变成cube_dead则会掉落。

相关文档
最新文档