国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

TomLooman_ActionRoguelike_第六章調(diào)試工具

2023-08-09 18:48 作者:別叫我小紅  | 我要投稿


該專欄用于保存對TomLooman的ActionRoguelike項目的學習筆記,學習過程中的思考與記錄不一定準確。


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

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

2023_08_02

調(diào)試工具:調(diào)試C++和藍圖、相機的變化和十字準星、用于主動檢測的錯誤的assert

?

在SExplosiveBarrel.cpp中實現(xiàn)了爆炸時打印調(diào)試信息,包括打印在OutputLog里和打印在3D世界中。

UE_LOG的函數(shù)接口為UE_LOG(CategoryName, Verbosity, Format, ...),其中CategoryName是打印的類別,Verbosity是信息的詳細程度,F(xiàn)ormat是日志的消息內(nèi)容。

在UE中,輸出字符串要加TEXT(),其作用是保證在不同環(huán)境下字符串仍能輸出正確。需要注意的是,%s的內(nèi)容不能是FString,而要是const wchar_t*,可以通過在FString前加*

得到(如第二句)。

UE_LOG的輸出效果如下圖所示,

DrawDebugString能將調(diào)試信息直接打印在3D世界中,F(xiàn)String類型的變可由FString::Printf(TEXT())創(chuàng)建。

DrawDebugString

的輸出效果如下,由于我們代碼中調(diào)試信息的輸出位置是Hit.ImpactPoint,所以調(diào)試信息在爆炸點出現(xiàn)。

?

在藍圖中設(shè)置break point的方法

未運行時

運行中觸發(fā)斷點時

藍圖中的斷點也可以被disable

?

?

Camera在Character正后方時,Character會擋住一定的視野,所以我們想把Camera的位置調(diào)整到偏右側(cè)。

不能像下面那樣直接調(diào)整Camera,因為這樣會讓Camera和SpringArm的相對位置錯誤,導致出現(xiàn)Camera穿墻的情況。

正確的做法是在SpringArm中調(diào)整Camera的位置,如下

?

只是單純地調(diào)整Camera的位置的話,Character射出的子彈不再落在屏幕中心,而是會落在偏左的位置。原因和解決方案下面講。

現(xiàn)在我們先在屏幕上添加一個準心。方法是創(chuàng)建一個WidgetComponent(控件組件)的藍圖類,添加一個Panel和一個Image(Image的初始窗臺是白色矩形),并讓Image位于Panel的中心。

Widget組件允許我們在游戲場景中用Unreal Motion Graphics(UMG,虛幻示意圖形)來創(chuàng)建3D UI,可以與之交互。

然后在Character的藍圖中將這個Widget顯示在屏幕上,

效果如下,

?

?

UE中的Assertion(斷言)能夠提醒我們哪里的程序出現(xiàn)了問題。Assertion相當于用if語句判斷指針是否非空,但用if語句判斷后要顯式地讓代碼停止運行或中斷程序,而Assertion會根據(jù)使用的斷言自動決定是繼續(xù)程序還是中斷程序。

UE中的Assertion包括check、verify和ensure(ensure在觸發(fā)斷言時不會終止程序,而是通知崩潰報告器,此時編輯器會卡頓一段時間)。

TomLooman_ActionRoguelike_第六章調(diào)試工具的評論 (共 條)

分享到微博請遵守國家法律
柞水县| 禄丰县| 葫芦岛市| 新津县| 新乡县| 泗阳县| 山西省| 古蔺县| 如皋市| 驻马店市| 嘉义市| 六安市| 克山县| 剑河县| 岢岚县| 南阳市| 彭山县| 河东区| 桐柏县| 南川市| 宝鸡市| 鄂伦春自治旗| 永州市| 凤翔县| 托克逊县| 卢湾区| 崇信县| 门源| 沽源县| 响水县| 包头市| 辽中县| 阜平县| 通化县| 门头沟区| 光泽县| 普定县| 巴南区| 濮阳市| 界首市| 陕西省|