只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)

作者:Truly

上次简单介绍了FPS Microgame的玩法,不知道小伙伴们有没有制作出自己喜欢的MOD呢?由于在道具里看到有火箭背包,突然联想到守望先锋里的法老之鹰,因此萌生了能不能制作一个法老之鹰MOD的想法。一翻捣鼓之后,成品如下:

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(1)

接下来我们打开FPS Microgame工程的MainScene场景,开始修改吧~

一、推进背包

1 空格键喷气悬浮

首先从最简单的部分开始,由于推进背包的脚本已经写好挂在角色身上,我们只需要调节参数就能大约地模拟一下法鸡浮空的手感。

(1)解锁:解锁之后,游戏开始就能立刻使用火箭背包。

在Hierarchy窗口里选中Player,在Inspector窗口里找到Jetpack脚本,勾选Is Jetpack Unlocked At Start

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(2)

(2)调节悬浮参数

找到Durations部分参数,调节参数(仅供参考,小伙伴们可以自行优化):

  • Consume Duration:2,如果一直按着空格键,喷气背包可持续使用秒数(可以理解为燃料值)。
  • Refill Duration Ground: 3,在地面完全填充燃料值所需的秒数(值越小,填充速度越快)。
  • Refill Duration In The Air:3,在空中完全填充燃料值所需的秒数(值越小,填充速度越快)。
  • Refill Delay:0.2,停用悬浮(放开空格键)多久后开始填充燃料。

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(3)

调节完成后可以试下手感哦,没有制作Shift推进之前需要先跳一下才能空格控制浮空。

2 Shift键喷射升空

(1)守望先锋中法鸡Shift可以喷射上升一段距离,由于FPS Microgame里设置Shift是奔跑,且只有治疗兵76的Shift才是奔跑,因此需要在脚本中做一些改动,打开PlayerCharacterController脚本:

①声明并获取Jetpack变量

public class PlayerCharacterController : MonoBehaviour

{

//...

Jetpack Jetpack;

void Start()

{

jetpack = GetComponent<Jetpack>();

//...

}

}

②找到void HandleCharacterMovement(),这是控制角色移动的方法。

③找到声明bool isSprinting的地方修改为:

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(4)

这样设置之后,在推进背包解锁的情况下,就不会奔跑了。

(2)编写推进背包功能

①在Jetpack脚本的Update()中添加以下语句,当按下左Shift键的时候,执行喷射方法Jet()。

public class Jetpack : MonoBehaviour

{

void Update()

{

//...

if (Input.GetKeyDown(KeyCode.LeftShift) && isJetpackUnlocked)

{

Jet();//喷射上升

}

}

}

②喷射方法

  • PlayerCharacterController脚本 中的m_LastTimeJumped 变量修饰符改为public,方便在Jetpack脚本中调用。

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(5)

  • Jetpack脚本声明喷射速度jetUpSpeed。
  • 喷射时修改角色竖直向上的速度(characterVelocity的Y方向的值),并且刷新m_LastTimeJumped,免去起飞时的地面检测,否则会被往地上吸。

public class Jetpack : MonoBehaviour

{

//...

public float jetUpSpeed=26f;

//...

public void Jet()

{

m_PlayerCharacterController.m_LastTimeJumped = Time.time;

//抵消向下的速度

var tempV = m_PlayerCharacterController.characterVelocity;

tempV.y = 0;

m_PlayerCharacterController.characterVelocity = tempV;

m_PlayerCharacterController.characterVelocity = Vector3.up * jetUpSpeed;

}

}

推进背包的主要功能基本就改造完成了,还有冷却时间之类的细节追求完美的小伙伴可自行添加~

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(6)

二、武器制作

1 火箭发射器

法鸡的火箭发射器是单发、无扩散的、6发弹药,那么我们开始设置吧~

(1)打开文件夹Assets > FPS > Prefabs > Weapons,找到Weapon_Blaster预制体,Ctrl D复制做好备份。

(2)双击Weapon_Blaster进入预制体编辑模式。

(3)在Inspector窗口中找到Weapon Controller脚本组件,调节以下参数:

①Shoot Parameters(射击参数):

  • Delay Between Shot(射击间隔):0.5,两枪的最短间隔时间为0.5秒。
  • Bullet Spread Angle(发射角度):0,无扩散。
  • Bullets Per Shot(每次发射子弹数):1,每次射1颗子弹。

②Ammo Parameters(弹药参数):

  • Ammo Reload Rate(每秒填充弹药的速度):6,每秒恢复6次发射次数。
  • Ammo Reload Delay:0.5,停止开火0.5秒后开始恢复发射次数(换弹)。
  • Max Ammo(最大弹药数):6,表示最多可以连发6次。

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(7)

2 火箭弹

武器参数已经调节完成,接下来开始设置火箭弹。

(1)创建火箭弹预制体

① 在Hierarchy窗口中新建空的GameObject,重命名为Projectile_Rocket,并且Reset Transform。

② 把Projectile_Rocket拖进文件夹Assets > FPS > Prefabs > Projectiles,生成预制体,然后删除Hierarchy窗口中的Projectile_Rocket。

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(8)

双击Projectile_Cookie打开预制体:

  • 打开文件夹Assets > ModAssets > SpaceProps
  • 把Rocket拖动到Hierarchy窗口的Projectile_Rocket下,作为其子对象。

只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(9)

  • 调节Rocket的Transform组件参数:Rotation:(90,0,0); Scale:(0.05,0.05,0.05)。设置后火箭头的朝向就是移动的方向。
  • 只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(10)

    (2)添加脚本并设置参数

    通过以上操作便完成了火箭弹的外观设置,下边来要完成脚本上的设置。

    ①在Hierarchy窗口中选中Projectile_Rocket,在Inspector面板中搜索并添加添加脚本:

    • ProjectileBase(发射物基础脚本)
    • ProjectileStandard(用于调节子弹的碰撞判定、飞行速度和伤害等)
    • DamageArea(伤害范围)

    ②设置ProjectileStandard参数

    a 设置碰撞相关参数

    • 在Rocket下新建空物体,命名为Tip,并且移动到火箭的位置。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(11)

    • 在Rocket下新建空物体,命名为Tail,并且移动到火箭的位置。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(12)

    • 把Tail拖进ProjectileStandard脚本的Root中进行赋值。
    • 把Tip拖进ProjectileStandard脚本的Tip中进行赋值。
    • Radius:0.1,把炮弹的检测半径设为0.1。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(13)

    b 设置Movement炮弹移动相关参数

    法鸡的火箭弹不是即时命中的子弹,因此飞行速度相对子弹来说较慢。

    • Speed(飞行速度):30。
    • Trajectory Correction Distance(轨道修正距离):10,炮弹在飞行前10米的过程中,会渐渐修正到发射时屏幕中心正方向的轨道上。

    c 设置伤害

    • Damage:120。

    ③设置DamageArea参数

    火箭弹具有溅射伤害,通过DamageArea脚本可以设置伤害范围,并且伤害能随着距离变化。

    • Area Of Effect Distance:5,伤害范围半径。
    • Damage Ratio Over Distance:点击右侧图框,可以通过曲线调节伤害,使距离爆炸中心越远,溅射伤害越低。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(14)

    • 把设置好的Damage Area拖进ProjectileStandard的 Area Of Damage变量框中。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(15)

    完成以上操作便能进行初步试玩了,可是现在只会投射一个小火箭头出去,看起来没有什么威力。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(16)

    3 添加特效

    为了让火箭弹更加看起来更加有表现力,需要在火箭的尾部添加烟雾效果,并且击中目标时播放爆炸特效。特效可以自行制作或者在Asset Store里边找合适的,底部链接地址提供本次使用的两个特效。

    双击打开Projectile_Rocket预制体进行编辑:

    (1)把烟雾特效VFX_TailSmokeEffect拖到Hierarchy窗口中的Tail节点下。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(17)

    (2)找到Projectile Standard脚本,把爆炸特效VFX_DiskRange_Rocket拖到Impact VFX框中。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(18)

    赶紧试试效果吧,是不是酷炫了好多呢~

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(19)

    结语:FPS Microgame的法老之鹰MOD制作分享就到这里了,小伙伴们可以充分发挥自己的想象力,做出各种自己喜欢的功能,例如艾什的延时雷管等等,希望大家玩得愉快。

    只狼mod结合(FPSMicrogame的法老之鹰MOD制作分享)(20)

    烟雾和爆炸特效链接:https:///share/init?surl=OvmZoPdiVXqRj4sl2aERBw​

    提取码:78w3

    参考资料:

    FPS Microgame官方教程:https://learn.unity.com/project/fps-microgame​


    咱们的游戏开发交流群也欢迎强势插入:869551769

    希望参与线下游戏开发学习的,欢~~~~~~迎访问:http://levelpp.com/

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页