上次簡單介紹了FPS Microgame的玩法,不知道小夥伴們有沒有製作出自己喜歡的MOD呢?由於在道具裡看到有火箭揹包,突然聯想到守望先鋒裡的法老之鷹,因此萌生了能不能製作一個法老之鷹MOD的想法。一翻搗鼓之後,成品如下:
接下來我們打開FPS Microgame工程的MainScene場景,開始修改吧~
一、推進揹包
1 空格鍵噴氣懸浮
首先從最簡單的部分開始,由於推進揹包的腳本已經寫好掛在角色身上,我們只需要調節參數就能大約地模擬一下法雞浮空的手感。
(1)解鎖:解鎖之後,遊戲開始就能立刻使用火箭揹包。
在Hierarchy窗口裡選中Player,在Inspector窗口裡找到Jetpack腳本,勾選Is Jetpack Unlocked At Start。
(2)調節懸浮參數
找到Durations部分參數,調節參數(僅供參考,小夥伴們可以自行優化):
- Consume Duration:2,如果一直按著空格鍵,噴氣揹包可持續使用秒數(可以理解為燃料值)。
- Refill Duration Ground: 3,在地面完全填充燃料值所需的秒數(值越小,填充速度越快)。
- Refill Duration In The Air:3,在空中完全填充燃料值所需的秒數(值越小,填充速度越快)。
- Refill Delay:0.2,停用懸浮(放開空格鍵)多久後開始填充燃料。
調節完成後可以試下手感哦,沒有製作shift推進之前需要先跳一下才能空格控制浮空。
2 Shift鍵噴射升空
(1)守望先鋒中法雞Shift可以噴射上升一段距離,由於FPS Microgame裡設置Shift是奔跑,且只有治療兵76的Shift才是奔跑,因此需要在腳本中做一些改動,打開PlayerCharacterController腳本:
public class PlayerCharacterController : MonoBehaviour
{
//...
Jetpack jetpack;
void Start()
{
jetpack = GetComponent<jetpack>();/<jetpack>
//...
}
}
②找到void HandleCharacterMovement(),這是控制角色移動 的方法。
③找到聲明bool isSprinting的地方修改為:
這樣設置之後,在推進揹包解鎖的情況下,就不會奔跑了。
(2)編寫推進揹包功能
①在Jetpack腳本的Update() 中添加以下語句,當按下左Shift鍵的時候,執行噴射方法Jet()。
public class Jetpack : MonoBehaviour
{
void Update()
{
//...
if (Input.GetKeyDown(KeyCode.LeftShift) && isJetpackUnlocked)
{
Jet();//噴射上升
}
}
}
②噴射方法
- 把PlayerCharacterController腳本 中的m_LastTimeJumped 變量修飾符改為public,方便在Jetpack腳本中調用。
- 在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;
}
}
推進揹包的主要功能基本就改造完成了,還有冷卻時間之類的細節追求完美的小夥伴可自行添加~
二、武器製作
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次。
2 火箭彈
武器參數已經調節完成,接下來開始設置火箭彈。
(1)創建火箭彈預製體
① 在Hierarchy窗口中新建空的GameObject,重命名為Projectile_Rocket,並且Reset Transform。
② 把Projectile_Rocket拖進文件夾Assets > FPS > Prefabs > Projectiles,生成預製體,然後刪除Hierarchy窗口中的Projectile_Rocket。
③ 雙擊Projectile_Cookie打開預製體:
- 打開文件夾Assets > ModAssets > SpaceProps。
- 把Rocket拖動到Hierarchy窗口的Projectile_Rocket下,作為其子對象。
(2)添加腳本並設置參數
通過以上操作便完成了火箭彈的外觀設置,下邊來要完成腳本上的設置。
①在Hierarchy窗口中選中Projectile_Rocket,在Inspector面板中搜索並添加添加腳本:
- ProjectileBase(發射物基礎腳本)
- ProjectileStandard(用於調節子彈的碰撞判定、飛行速度和傷害等)
- DamageArea(傷害範圍)
②設置ProjectileStandard參數
a 設置碰撞相關參數
- 在Rocket下新建空物體,命名為Tip,並且移動到火箭頭的位置。
- 在Rocket下新建空物體,命名為Tail,並且移動到火箭尾的位置。
- 把Tail拖進ProjectileStandard腳本的Root中進行賦值。
- 把Tip拖進ProjectileStandard腳本的Tip中進行賦值。
- Radius:0.1,把炮彈的檢測半徑設為0.1。
b 設置Movement炮彈移動相關參數
法雞的火箭彈不是即時命中的子彈,因此飛行速度相對子彈來說較慢。
- Speed(飛行速度):30。
- Trajectory Correction Distance(軌道修正距離):10,炮彈在飛行前10米的過程中,會漸漸修正到發射時屏幕中心正方向的軌道上。
c 設置傷害
- Damage:120。
③設置DamageArea參數
火箭彈具有濺射傷害,通過DamageArea腳本可以設置傷害範圍,並且傷害能隨著距離變化。
- Area Of Effect Distance:5,傷害範圍半徑。
- Damage Ratio Over Distance:點擊右側圖框,可以通過曲線調節傷害,使距離爆炸中心越遠,濺射傷害越低。
- 把設置好的Damage Area拖進ProjectileStandard的 Area Of Damage變量框中。
完成以上操作便能進行初步試玩了,可是現在只會投射一個小火箭頭出去,看起來沒有什麼威力。
3 添加特效
為了讓火箭彈更加看起來更加有表現力,需要在火箭的尾部添加煙霧效果,並且擊中目標時播放爆炸特效。特效可以自行製作或者在Asset Store裡邊找合適的,底部鏈接地址提供本次使用的兩個特效。
雙擊打開Projectile_Rocket預製體進行編輯:
(1)把煙霧特效VFX_TailSmokeEffect拖到Hierarchy窗口中的Tail節點下。
(2)找到Projectile Standard腳本,把爆炸特效VFX_DiskRange_Rocket拖到Impact VFX框中。
趕緊試試效果吧,是不是酷炫了好多呢~
結語:FPS Microgame的法老之鷹MOD製作分享就到這裡了,小夥伴們可以充分發揮自己的想象力,做出各種自己喜歡的功能,例如艾什的延時雷管等等,希望大家玩得愉快。
煙霧和爆炸特效鏈接:https://pan.baidu.com/share/init?surl=OvmZoPdiVXqRj4sl2aERBw
提取碼:78w3
FPS Microgame官方教程:https://learn.unity.com/project/fps-microgame
咱們的遊戲開發交流群也歡迎強勢插入:869551769
希望參與線下游戲開發學習的,歡~~~~~~迎訪問:http://levelpp.com/
閱讀更多 皮皮關遊戲開發教育 的文章