UFPS入门 Unity FPS 教程

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       
 

原文:Introduction To UFPS: Unity FPS Tutorial
  作者:Anthony Uccello

用一支散弹枪轰杀大片凶恶的敌人或者在战场上小心翼翼地狙杀你的对手是一种爽到极点的游戏体验。以动作+射击为主的游戏被称作第一人称射击游戏(FPS)。它有一个类似的种类,即第三人称射击游戏——区别在于你看到的画面是角色的后背还是枪管的下方。

在编写 FPS 游戏时,毫无疑问需要做大量工作。但是,我们没有必要从 0 开始,你可以使用一个叫做 UFPS(终极FPS)的框架!

在本文中,我们将介绍 UFPS 是什么以及如何用它创建一个基本的 Unity FPS “沙盒”游戏——“沙盒”一词意指玩家被限制在一个有限的空间内。

读完本文,你将学会:

  • 用简单的 UFPS 脚本让玩家移动和开火
  • 使用 vp_FP 组件
  • 当子弹击到平面时显示弹孔
  • 为玩家添加内置的 FPS 动作
  • 添加新的枪具并配置属性
  • 添加带瞄准镜的大狙(最好的枪)

预备知识

你应当熟悉 C# 脚本并关联组件到 GameObject 对象。如果你没接触过 Unity 或者需要重温一下,请参考我们的 getting started in Unity 教程。

你还需要一份 Opsive 公司的 “UFPS: Ultimate FPS” 许可协议,这份协议你可以从Unity Asset 商店获得。这篇教程是用 UFPS 1.7编写的。

最后,你需要使用 Unity 5.5.0 或以上的版本。

开始

UFPS 是一个 Unity 插件,包含用于支持典型 FPS 游戏的核心逻辑。不需要自己为每个场景编写脚本,你可以通过修改预置脚本来处理常见的任务比如:

  • 装备枪支
  • 枪的移动和开火
  • 管理弹药和库存
  • 玩家的移动
  • 管理相机视角
  • 跟踪相机
  • 管理事件,比如被激光枪击中
  • 管理平面,比如滑坡和水道
  • 尸体及重力物理

好的游戏不可能一蹴而就。做游戏的最好方式是把注意力集中在基本功能上,比如核心玩法,然后以此为基础逐步完善。UFPS 能够帮你打好这个基础并且还提供一个更加庞大的框架给你使用。

下载开始项目:ReadyAimFire_Unity3D_starter。

在 Unity 中打开项目,双击 Main 场景加载游戏场景。

 

注意:我们不能再次分发 UFPS 的源文件,因此这个教程中不会有一个最终项目,它们也不包含在开始项目中。你需要自己完成整个游戏:]

在 Unity Asset 商店中找到 UFPS,找到下载栏,点击下载按钮。下载完成后,点击 Import 按钮,稍等一会显示出包的内容,然后点 OK。包很大,请耐心一点。

 

注意:你可能会看到一个关于“importing a complete project”的警告:
 

   

这是因为 asset 中包含了一些项目设置,这些设置会覆盖你当前 open project 设置。在这里,只有 Graphics 和 Tag 设置会被覆盖,因此你只需要点击 Import 按钮继续导入 UFPS 即可。

导入完成后,你可能会看到几个警告。这些警告来自于 UFPS,直接忽略即可。

从 File 菜单选择 Save Scenes,保存修改。点击 Play 按钮,感受一下全新的项目。

重要概念

你肯定非常想射击(或者编写脚本),但理解 UFPS 框架的一些关键概念非常重要。

FP 组件

FP 包含了一个组件,它属于一个脚本族,这个脚本族用于管理真实的第一人称射击对象——也就是玩家。这些组件都以 vp_FP 开头。其中最重要的组件是 vp_FPController 脚本,在玩家对象被创建的时候就关联了这个脚本。

状态

状态是一个容易混淆的概念。在许多 vp_FP 逐渐中,你都会找到另一个名为 State 的属性,例如:

某个 vp_FP 脚本用一个 state 字段来记录一些本地变量的值,这些变量用于表示组件在指定时间点的状态。设想一下:当你放大并使用狙击步枪的瞄准镜时,你可以处于一种“Zoom”状态—— 这个状态下的预设值应当变大,同时改变枪的位置和角度以对准中心位置。当你 Zoom 的时候,它也会让武器的移动呈现出动画。

事件

事件是对象之间的信号,用于表示某些重要的事情发生了,其它对象必须做出响应。例如,当某样东西被射中时。“被射中”就是一种事件——也可以说一个信号。根据你的游戏设定,其它对象会对此做出响应。这篇教程不会过多介绍事件。

好了,伙计,干得不错。

创建玩家预制件

在项目浏览器的搜索栏中输入 SimplePlayer,然后将 SimplePlayer 预制件拖到场景中,放到靶子前面。

在结构视图中选中 SimplePlayer 这个 GameObject,设置它的 Position 为 (X = -26.6, Y = 1.3, Z = -21.3) ,Rotation 为 (X = 0, Y = 0, Z = 0)。

从结构视图中删除 Camera 这个 GameObject。我们不需要它,因为在 SimplePlayer 上的镜头会给你一个第一人称视角。

点击 Play,你创建了一个 FPS 游戏并且可以运行了!

在开枪或使用瞄准镜的的时候按下 play,会将光标锁定到屏幕上。按下 Escape 又会重新获得光标。

使用 WASD 键移动或者按下鼠标左键开枪,右键打开瞄准镜——你可以在打开瞄准镜的同时开枪。还可以用 Shift 键跑,用空格键跳。请打到靶子上:]

 

注意:在编写本教程的时候,UFPS 有一个 Bug,当你第一个试玩一个场景时,不能看到枪口焰。解决办法是点击鼠标右键打开瞄准镜一次——后面就正常了。

后面有许多逻辑,但 UFPS 好的地方就是它会为你完成许多工作。它让你把注意力放在更重要的事情上,比如为武器添加自定义的行为。你会惊喜地发现根本不需要为玩家的移动和武器的开火创建任何动画。你看见的动作使用了物理引擎。这也是由 UFPS 完成的!

UFPS 开始只有一把小手枪,但开始项目中还包含散弹枪和狙击步枪的预制件。你可以简单地拖入这两个预制件并修改 UFPS 设置以完善动画效果。

你可能感兴趣的:(UFPS入门 Unity FPS 教程)