查看原文
其他

微信号 Unity-GreaterChina 功能介绍 Unity大中华区官方微信 《守望先锋》的女英雄Pharah拥有独特的火箭跳技能,使用喷射背包的她能在虚拟战场上实施空中控制。本篇文章将教大家学会通过分解和重建组件,在Unity中重建火箭跳的运动系统。 《守望先锋》的女英雄Pharah 本教程将帮助大家熟悉Unity的物理系统,学习在Unity中创建基本的FPS(第一人称射击游戏)角色,实现《守望先锋》中Pharah一样的地面运动,火箭跳和悬浮技能。   工程设置 首先,创建一个空白工程。在Assets资源文件夹下新建Scenes和Scripts两个文件夹,分别存放场景和脚本。 访问Asset Store资源商店下载资源包Standard Assets和 Guns Pack。 Standard Assets提供了环境模型网格,Guns Pack则提供了项目中所需要使用的火箭发射器模型。 Standard Assets   Guns Pack 访问GameObject > Light > Directional Light 为场景中加入方向光。   工程项目中必须有可以使用的地面。访问Assets > Standard Assets > Prototyping > Prefabs中查找可以使用的地面原型。调整地面的位置到原点,并将其定位到希望的坐标位置。到这里工程设置就完成了,现在可以开始下一步创建角色了。 创建角色 在本工程中,我们不打算直接使用Standard Assets中的FPS角色。我们来创建自定义的FPS角色并为其编写脚本。 首先我们来创建Player玩家。点击 GameObject > 3D Object > Capsule,使用胶囊体创建FPS的身体。重置胶囊体的位置到原点,将其放置在地面上方。在Hierarchy层级窗口中,右键点击胶囊体,将胶囊体命名为Player。   Hierarchy层级窗口中拖放将摄像机关联到Player的FPS身体上,将其位置设置为身体的中心,并提升到合适的高度,这就符合角色的FPS摄像机视角了,而它的位置也会随着玩家的位置变化而变化。将Field of View值设置为70。设置方式为选择摄像机后,在其Inspector检视窗口中进行修改。 然后我们来创建RocketLauncher火箭发射器。访问Assets > Guns Pack > Prefabs > RocketLauncher添加该预制体。对RocketLauncher预制体重复以上操作,但将其关联到摄像机而不是Player,重新定位它到合适的位置。 现在,场景和游戏视图应如下图所示。 角色物理系统 为了让我们的角色适用于Unity的物理系统,我们需要添加一些组件来保证它们的正确运作。 现在我们需要建立角色与刚体组件的连接,选择对象Player,在Inspector检视窗口中:使用Add Component > Physics > Rigidbody为其添加刚体组件。   在Inspector检视窗口中确保Player的刚体组件中重力gravity选项勾选。同时锁定Player刚体组件在X,Y,Z三轴上的旋转。 如果此时运行游戏,我们会发现重力作用似乎不明显。有很多办法可以增加作用在刚体上的重力,这次我们直接在游戏对象上使用内建组件Constant Force。请按照以下操作:为Player添加一个名为Constant Force组件,选择Player在Inspector检视窗口中选择:Add Component > Physics > Constant Force。在Constant Force组件检视窗口中,为Y轴方向的力赋一个值。在本教程中,我们用-9.8。注意前面一定要有负号,否则游戏中角色会展翅高飞而不是向下掉落。 这样就完成了创建基础角色。 角色的地面运动 为了赋予角色创建基本的地面运动能力,我们只需一个简短的脚本。 首先为对象Player创建一个C#脚本。在Inspector检视窗口中:选择Add Component > New Script 。语言选择:C#。将脚本命名为P_Controller。 下面为脚本代码与功能注释。   代码非常简单,如下图所示。 现在,我们在Inspector检视窗口中,在Player游戏对象的P_Controller脚本中为p_WalkSpeed赋值。本教程中设置玩家的移动速度为5。     玩家的鼠标动作 现在,我们需要为Player创建一个基本的瞄准系统。 首先为摄像机创建新的C#脚本‘P_Mouse。在Inspector检视窗口中选择摄像机Camera,Add Component > New Script > 语言选择:C #。 下面为脚本代码与功能注释。 代码如下图所示。   在Inspector检视窗口中为Player对象在P_Mouse脚本中的p_MouseLook和p_MouseSmooth赋值。本教程中我们都使用值5。   火箭跳跃和悬浮 制作Pharah火箭跳和悬浮效果看起来难,但实际却可以用简单的脚本加以实现。 首先为对象Player创建新的C#脚本‘‘P_Jump。在Inspector检视窗口中选择游戏对象Player,Add Component > New Script > 语言选择:C #。 下面为脚本代码与功能注释。   代码如下图所示。   在Inspector检视窗口中为对象Player在P_Jump脚本中的p_ForceRJ和p_ForceHover变量赋值,本例程中我们分别使用1000和25。   效果 我们还在环境里添加了一些预制体原型,我们就不在本教程中细致阐述了。运行项目,下面是演示结果。 小结 希望大家通过对本文内容的学习,可以创造出更加优秀的游戏作品。后面我们还会继续分享一些开发中的实用技巧在Unity官方中文社区(unitychina.cn),请保持关注!   推荐阅读 揭秘Unity 2017.2的情景测试 在Unity中创建ARCore项目《Akira》 5个保持动画控制器整洁的小技巧 12步将使你的人物角色变成玩家 Unity 2017.3 Beta版本粒子系统的改进 近期Unity官方活动 11月,Unity教育峰会,上海、广州、桂林、济南、武汉站报名火热进行中。 11月11日,Unity技术路演成都站火热报名中! Unity Connect火热征文中,赶紧来分享你的Made with Unity作品吧! 点击“阅读原文”进入Unity官方中文社区! 赞赏 54 27822 54 15288 0 0 3559 0 0:00:07 0:00:04 0:00:03 3559 长按二维码向我转账 受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。 微信扫一扫关注该公众号

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存