最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

TomLooman_ActionRoguelike_AssignmentOne

2023-08-10 08:17 作者:別叫我小紅  | 我要投稿

該專欄用于保存對(duì)TomLooman的ActionRoguelike項(xiàng)目的學(xué)習(xí)筆記,學(xué)習(xí)過程中的思考與記錄不一定準(zhǔn)確。


教程參考:https://github.com/tomlooman/ActionRoguelike

基于UE5.0的項(xiàng)目實(shí)現(xiàn):https://github.com/CarolBaggins2023/TomLooman_ActionRoguelike_Tutorial


2023_07_28

Assignment 1:爆炸桶,跳躍

?

首先創(chuàng)建C++類。因?yàn)楸ㄍ安恍枰籆ontrol,所以不需要繼承Pawn及其子類,繼承Actor就足夠。以下是頭文件中聲明的爆炸桶組件的成員變量,以及源文件構(gòu)造函數(shù)中對(duì)成員變量的實(shí)例化和設(shè)置。




?

這里聲明組件的方式與之前有所不同,比較在Scharacter中聲明攝像機(jī)組件,與這里聲明網(wǎng)格組件,



兩者都是指針,但聲明CameraComp時(shí)用的是C++的原始指針,聲明MeshComp時(shí)用的是TObjectPtr類。TObjectPtr類模板可用于替換原始指針,用法與其它類模板相同,為TObjectPtr<類名>。

?

在實(shí)例化MeshComp時(shí),除了默認(rèn)實(shí)例化和將其作為RootComponent,我們還開啟了MeshComp的物理模擬。

需要注意的是,我們?cè)谒{(lán)圖中對(duì)物理模擬打鉤后,Component的CollisionPresets會(huì)自動(dòng)變成PhysicsActor。但是當(dāng)我們?cè)贑++中執(zhí)行SetSimulatePhysics(true)后,Component的CollisionPresets的變化需要顯式地進(jìn)行,否則不會(huì)變化。在這里會(huì)保持WorldDynamic,因?yàn)槲覀兊腟MagicProjectile對(duì)WorldDynamic的Collision是Overlap的,所以兩者無法發(fā)生正確的碰撞。

ForceComp所屬的URadialForceComponent類(徑向力組件)會(huì)向徑向方向?qū)hysics和Destructible類別的Object施加力。

在實(shí)例化ForceComp時(shí),我們?cè)O(shè)置了該徑向力的范圍和強(qiáng)度。

其中有一個(gè)bImpulseVelChangeBool類型變量,若為true,則該組件發(fā)出的徑向力忽視Object的重量,否則Object重量越重,徑向力對(duì)Object的影響越小。

ForceComp->AddCollisionChannelToAffect(ECC_WorldDynamic)和SMagicProjectile中使用過的SphereComp->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap)類似,都是對(duì)某個(gè)通道設(shè)置某種碰撞屬性。

可通過ForceComp->SetAutoActivate()函數(shù)設(shè)置該組件的徑向力是否自動(dòng)開啟,若為true,則徑向力從該組件所依附的對(duì)象被創(chuàng)造時(shí)就存在(但是試驗(yàn)中沒有效果)。因?yàn)槲覀冃枰米訌椉せ钸@個(gè)徑向力來模擬爆炸效果,所以設(shè)置為false。

?

在頭文件中我們重載了Actor類的PostInitializeComponents函數(shù),該函數(shù)是實(shí)例化Actor時(shí)的一環(huán),

我們?cè)谠次募袑?duì)該函數(shù)的定義如下

Super::PostInitializeComponents();執(zhí)行父類(Actor類)的同名函數(shù)。

OnComponentHit組件將會(huì)在擊中或被擊中時(shí)觸發(fā)。

這里的AddDynamic涉及UE的委托機(jī)制,作用大致是將SexplosiveBarrel對(duì)象與函數(shù)ASExplosiveBarrel::OnActorHit綁定,當(dāng)觸發(fā)一些事件時(shí)激活(運(yùn)行)函數(shù)ASExplosiveBarrel::OnActorHit。???

?

BindAction進(jìn)行兩個(gè)綁定:將外部輸入綁定到事件(ProjectSetting中完成),將事件綁定到函數(shù)(C++,SetupPlayerInputComponent成員函數(shù)中完成)。

因?yàn)锳Character自帶跳躍函數(shù),所以實(shí)現(xiàn)較為簡(jiǎn)單。

如果把IE_Pressed換成IE_Release,角色就會(huì)在松開空格后起跳,而不是在按下空格時(shí)起跳(可以實(shí)現(xiàn)類似蓄力跳的效果)。


TomLooman_ActionRoguelike_AssignmentOne的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
前郭尔| 依安县| 封开县| 揭阳市| 东安县| 大渡口区| 湘潭市| 望奎县| 汽车| 泸溪县| 乐平市| 贵州省| 舞钢市| 信阳市| 隆回县| 平武县| 萝北县| 潮州市| 盐津县| 高青县| 滨州市| 兰州市| 广州市| 乐都县| 潮安县| 韶关市| 玉树县| 静宁县| 沙湾县| 夏邑县| 吐鲁番市| 绿春县| 庄浪县| 临朐县| 乐亭县| 荔浦县| 滦南县| 西乡县| 嵊泗县| 达尔| 仲巴县|