本教程參考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果沒(méi)有學(xué)習(xí)前兩篇教程,請(qǐng)前往學(xué)習(xí)。

GameplayAbilities插件提供了強(qiáng)大的技能系統(tǒng),今天介紹的是和標(biāo)簽有關(guān)系的內(nèi)容。

 

第零步:隨便打開一個(gè)Actor,隨便查看一個(gè)組件,發(fā)現(xiàn)里面有tag

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

這個(gè)Tag和我們本篇講的內(nèi)容無(wú)關(guān),不要混淆!

 

第一步:打開projectsettings,查看

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 

添加一些Tag,什么是Tag呢?簡(jiǎn)單來(lái)說(shuō)就是技能(Ability)樹中的每一個(gè)標(biāo)簽。

如上圖的過(guò)程,添加如下Tag

Magic.Wood :木精靈魔法

Magic.Fire :火焰魔法

Magic.Ice :冰封魔法

Remote.BirdHit:飛鳥

Remote.Arrow:弓箭

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

參考:https://www.youtube.com/watch?v=e2rdXo408Q0

1.5步:在character的藍(lán)圖中創(chuàng)建一個(gè)tagscontainter結(jié)構(gòu)體,打開其眼睛(公開)。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

知識(shí)點(diǎn)說(shuō)明:GameplayTagGameplayTagContainer是對(duì)新手較為重要的兩個(gè)類型,其中前者是單個(gè)的Tag變量,后者可以看成是Tag的數(shù)組。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

追加步驟:在這個(gè)Container中選擇火焰魔法(表明這個(gè)Container默認(rèn)含有火焰魔法)。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

第二步【本步驟制作一個(gè)pickup類(我們稱為技能球),使得主人公拾取它時(shí)得到新的技能】:拉出一個(gè)球然后創(chuàng)建藍(lán)圖。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

2a步:對(duì)“技能球”加入一個(gè)變量如下,默認(rèn)值其實(shí)不重要,重要的是暴露。

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

2b步【本步驟是關(guān)鍵,添加拾取邏輯】:添加一個(gè)shpere collision,注意它的大小要調(diào)整一下,它的半徑要比SM球大一些(這一點(diǎn)總很容易理解吧,因?yàn)橐屓宋锬軌蚺龅竭@個(gè)sphere collision)。拾取邏輯如下。這里有一個(gè)重要的節(jié)點(diǎn),就是AddGameplayTag,表示添加一個(gè)Tag到容器中?!菊f(shuō)明:下圖中的Hit事件不正確,應(yīng)該是oncomponentbeginoverlap事件】

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

追加一個(gè)拾取后消失的邏輯:

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

2c步【放置這些“技能球”】:注意在細(xì)節(jié)面板中配置它們的skill,放置示意圖如下。

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

3步【在人物中打印,看看是否有拾取到遠(yuǎn)程技能】:在人物中,下面的藍(lán)圖應(yīng)該不難看懂,不多解釋,其中重要的節(jié)點(diǎn)是MakeGameplayTagQueryDoesContainerMatchTagQuery

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

4步:運(yùn)行測(cè)試,讓人物去拾取所有的技能球,然后不斷地打印,看看有沒(méi)有技能。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

以上的小實(shí)例僅僅是一個(gè)開胃菜,GameplayAbilities插件提供了超級(jí)復(fù)雜的技能系統(tǒng)。我們繼續(xù)!

 

另一組探索:

5.1步【創(chuàng)建Ability】:創(chuàng)建兩個(gè)GameplayAbility(注意別搞錯(cuò)了),命名為“烈焰之鳥”和“召喚冰龍”。

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

5.2步【AbilityTags的講解】:在烈焰之鳥中配置AbilityTagsMagicFIreRemoteBird,表示這個(gè)Ability有兩個(gè)標(biāo)簽:魔法-火焰 和 遠(yuǎn)程-鳥。(請(qǐng)注意點(diǎn)擊ClassDefault

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

重要的講解:Ability Tags決定了這個(gè)Ability的標(biāo)簽!簡(jiǎn)單來(lái)說(shuō)就是這個(gè)Ability所具備的屬性(或者分類)。

 

5.3步【CancelAbiliesWithTags的講解】:在召喚冰龍中配置它的技能標(biāo)簽(Ability Tags)以及“打斷技能列表”(CancelAbilitieswithTags)。

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

這是什么意思呢?

凡是“召喚冰龍”被激活時(shí),釋放者actor(簡(jiǎn)單來(lái)說(shuō)就是這個(gè)character)正在釋放的所有火魔法技能將被打斷。

我們希望召喚冰龍的時(shí)候,正在釋放的烈焰之鳥被中斷。怎么做呢?繼續(xù)看:

 

5.4步:召喚冰龍里的激活邏輯:

 iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

烈焰之鳥里的激活邏輯:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

知識(shí)點(diǎn):注意其中的EndAbilityOnEndAbility是很重要的節(jié)點(diǎn)。

上述邏輯表示:烈焰之鳥將要五秒鐘的蓄力事件才能釋放完畢。

 

5.5步:在character中配置MyAbilities數(shù)組(這個(gè)不是天生就有的,它是作者自定義的類變量,如果不知道由來(lái),請(qǐng)看之前的教程):配置烈焰之鳥和召喚冰龍的Ability。

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

第5.6步:在人物character中寫激活技能的邏輯(其中的UseAbility1UseAbility2其實(shí)僅僅是很簡(jiǎn)單的輸入事件,如果不知道由來(lái)的話,請(qǐng)看前面的教程)(注意:下面的示意圖中筆者展示了兩種不同的激活Ability的方法,不難理解)

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 

5.7步:保存編譯,執(zhí)行。

實(shí)驗(yàn)a:點(diǎn)擊zUseAbility1的按鈕),等候5秒看到:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

實(shí)驗(yàn)b:點(diǎn)擊z之后馬上點(diǎn)擊xUseAbility2的按鈕),看到:

iOS培訓(xùn),Swift培訓(xùn),蘋果開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn)

 

 

秒懂了吧。

 

 

還有很有趣的知識(shí)點(diǎn),下一篇教程大概也有點(diǎn)像鞏固課,會(huì)講一些新的內(nèi)容,但是不難。

 

原創(chuàng)聲明:本文系小江村兒的文杰原創(chuàng),若有參考的資料必在本文中給出。——小江村兒的文杰 zouwj5@qq.com 2017年7月14日14:44:47

http://www.cnblogs.com/JackSamuel/p/7170262.html