UE4 除錯技巧分享 (一)
俗話說的好 給他魚吃不如教他釣魚 今天要分享幾個我平常在用的技巧 心理建設 如果你是有程式背景,但是正在用blueprint(BP)開發。 那我會建議你要先幫自己做好心裡建設。 你在用的是開發原始碼的引擎, 遇到問題時應該儘量往引擎內部追, 不要馬上就找繞過(workaround)的方法或求救。 那樣作你很快就會想放棄,因為無法進步,遇到問題無法自救。 硬體設備 雖說是技巧心得,理論上要跟硬體無關,但是這個真的要講一下。 想追code一定要準備好2個螢幕以上,至少一個螢幕是UE4 Editor,另一個是Visual Studio。 單螢幕的話光是切換視窗就亂掉了。 技巧分享 這裡面的技巧應該比較零散,所以可以跳著看。 不寫Code就直接顯示變數值在螢幕上 如果問我只能寫一條的話,我一定選這一條。 這個是我第一常用的技巧了,大部分我們想到要得知某一個值,就是跑去Actor或是Component的Tick裡面下PrintString,這樣資訊就會顯示在畫面上。如下圖。 可是有的時候bug是機率出現的,好不容易bug發生了,想看某個值是否異常,但是當下卻沒有埋PrintString,難道只能放棄了嗎? 其實沒有,引擎提供了強大的console command "DisplayAll",讓我們可以直接拿到變數值並顯示於螢幕。如圖。 DisplayAll的使用方法是: DisplayAll [ClassName] [PropertyName] 大小寫無分別,所以可以不管大小寫。 ClassName的部份,可分為C++與BP class兩種。 如果你要追查的class是C++ class,那麼直接輸入C++的名稱就好, 但是要去除第一個字。例如 AActor應該輸入Actor 想知道movement移動速度的最大值可下 displayall charactermovementcomponent maxwalkspeed 如果你要追查的class是BP,那麼你要輸入[BP的名稱_C], 舉例來說 有一個BP名稱為BP_CodeTraceActor 裡面有一個變數是value 那麼要輸入的是 DisplayAll BP_CodeTraceActor_c value PropertyName的部份,只要這個變數有被定義為UPROPERTY,就可以拿到值。BP所有的...