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

歡迎光臨散文網(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)試工具的評論 (共 條)

分享到微博請遵守國家法律
十堰市| 隆昌县| 荣昌县| 怀安县| 青阳县| 胶州市| 乡宁县| 武邑县| 和政县| 兖州市| 遂宁市| 密山市| 南康市| 汾阳市| 秦皇岛市| 秦安县| 秭归县| 古丈县| 临城县| 微博| 峨眉山市| 石嘴山市| 团风县| 吉安市| 晋城| 兴山县| 红桥区| 普兰店市| 浦东新区| 凤台县| 潮州市| 清徐县| 香港| 江北区| 沁水县| 方城县| 长葛市| 南和县| 青海省| 会同县| 靖边县|