五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

UE4 GAS GamplayEffect 簡(jiǎn)單總結(jié)①

2023-08-27 09:03 作者:末日時(shí)你吃了嗎  | 我要投稿

注意,這只是一個(gè)基于個(gè)人學(xué)習(xí)經(jīng)驗(yàn)的簡(jiǎn)單嘗試性總結(jié),可能會(huì)出現(xiàn)錯(cuò)誤,硬要說的話本人也沒有對(duì)此完全地掌握。如果您發(fā)現(xiàn)其中錯(cuò)誤了,請(qǐng)務(wù)必提出。


指定教材 《GASDocumentation》


目錄??

一 認(rèn)識(shí)結(jié)構(gòu)

二 持續(xù)策略

三 Modifier?

四 Execution?


一?認(rèn)識(shí)結(jié)構(gòu)

GameplayEffect(后續(xù)簡(jiǎn)稱GE)

此處省略一堆介紹語(yǔ)

GE的持續(xù)策略有三種,分別是Instant(瞬時(shí))、Infinite(無限)和HasDuration(有持續(xù)時(shí)間)。

GE的屬性修改可以分為兩類,一個(gè)是通過Modifier進(jìn)行修改,還有一種是借助Execution。此外,Modifier有四種方式,分別是 ScalableFloat、AttributeBased、CustomCulculationclassSetByCaller。后續(xù)會(huì)分別介紹。

這里補(bǔ)一張導(dǎo)圖。

?

給我導(dǎo)

沒有人比我更貼心地標(biāo)注了



二 持續(xù)策略

① Instant策略 (間歇地,即設(shè)置了周期觸發(fā)的,也可以視為瞬時(shí)的)

*?僅有瞬時(shí)類型的GE,會(huì)觸發(fā)AttributeSet的PostGameplayEffectExecute方法

*?僅有瞬時(shí)類型的GE,能夠使用Execution Calculation [ExecCalc]

*??對(duì)于Instant類型所攜帶的GameplayCue,具體為GameplayCueNotifyStatic子類,可以使用HandleGameplayCueEvent或OnExecution,復(fù)寫兩個(gè)方法任意一個(gè)即可。


② Infinite策略(Duration策略與之類似,兩者可以統(tǒng)稱為Ongoing類型),

*??對(duì)于Ongoing類型所攜帶的GameplayCue,具體為GameplayCueNotifyStatic子類,會(huì)在添加時(shí)觸發(fā)OnActive,會(huì)在移除時(shí)觸發(fā)OnRemove,不應(yīng)當(dāng)嘗試觸發(fā)HandleGameplayCueEvent。

?


三 Modifier

① ScalableFloat

可以傳入一個(gè)CurveTable,完成由等級(jí)到數(shù)值的映射,沒什么好說的,最常用的方式。

② AttributedBase

基于其他屬性的計(jì)算與修改,比①稍微復(fù)雜一點(diǎn)方式。

示例:恢復(fù)最大生命值的12%。

過程:需要先指定BackingAttribute為MaxHP,然后在Coefficient一欄填寫 0.12,最后指定賦予的屬性。

這里的Healing是和Damage類似的臨時(shí)數(shù)值


③ CustomCulculationclass 即ModMag

最好C++來實(shí)現(xiàn),但可以考慮使用藍(lán)圖子類修改其中部分的預(yù)設(shè)數(shù)值。

非常實(shí)用的方式,可以一次捕捉多個(gè)屬性并賦給另一個(gè)屬性。

示例:角色的攻擊力AttackPower 往往是由多個(gè)屬性決定的,如等級(jí),攻擊力加成,攻擊點(diǎn)數(shù)等。

公式: AttackPower = [(ATK + Level * 2) + Add] * (1 + Mul)

過程:

?


*?可以在C++中定義Float數(shù)值,在藍(lán)圖子類中修改。

*?可以在C++中定義FCurveTableRowHandle,在藍(lán)圖子類中指定相應(yīng)的CurveTable

* 以攻擊力計(jì)算GE為例,它是Infinite策略,會(huì)在游戲開始時(shí)就交給角色。


④ SetByCaller

通常為在GA中計(jì)算得到了一個(gè)數(shù)值,然后想要在GE中應(yīng)用該數(shù)值,會(huì)用到該方式。

如在GA中計(jì)算了一個(gè)基礎(chǔ)傷害,希望它能夠傳遞至GE中,以進(jìn)行進(jìn)一步的傷害計(jì)算。

一般使用GameplayTag來傳遞該數(shù)值。

過程:


?


四、Execution 處理器

最強(qiáng)大的屬性處理方式,僅支持Instant類型。

你幾乎可以在UGameplayEffectExecutionCalculation類中做你想做的任何事,唯一的缺點(diǎn)是需要被重寫的Execute_Implementation是一個(gè)const方法,會(huì)有些許不便。

在ARPGSample項(xiàng)目中有一個(gè)完整且詳細(xì)的案例,這里就不貼代碼了。一般的,會(huì)在復(fù)雜的傷害計(jì)算時(shí)用到它。

* 之前有一篇教程,提及如何將GA實(shí)例以及其他復(fù)雜結(jié)構(gòu)體傳到 Execution中。具體方式為重寫了FGameplayEffectContext。


UE4 GAS GamplayEffect 簡(jiǎn)單總結(jié)①的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
萝北县| 新平| 应城市| 樟树市| 黑水县| 汉源县| 婺源县| 西盟| 蕲春县| 成武县| 阜平县| 霍州市| 西华县| 建阳市| 通化县| 黄骅市| 周口市| 丹棱县| 临夏县| 上饶市| 西充县| 西乌珠穆沁旗| 扬州市| 临桂县| 南安市| 彩票| 徐水县| 尉犁县| 那曲县| 丹凤县| 湘潭县| 韶关市| 剑阁县| 巴塘县| 柘城县| 百色市| 阳曲县| 云阳县| 景宁| 延边| 德江县|