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

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

分享到微博請遵守國家法律
蓬安县| 台州市| 临泉县| 三原县| 望城县| 抚远县| 台南市| 隆尧县| 玉田县| 尚义县| 林甸县| 体育| 和龙市| 甘洛县| 洞口县| 南和县| 湖北省| 綦江县| 灵武市| 壶关县| 北票市| 阿城市| 黔东| 阿坝县| 龙胜| 乌什县| 临夏市| 嘉禾县| 宁南县| 贵定县| 阜阳市| 永丰县| 洞头县| 柳林县| 清丰县| 安泽县| 大兴区| 海丰县| 栾川县| 漾濞| 蓬安县|