ue 使用中注意的問題(持續更新)

1.ue4中使用try catch時,應該在在模塊的build.cs中,加入bEnableExceptions = true;不然打包會出錯

 

2.包含第三方庫時,有可能出現預處理器沒有定義的情況,在庫的頭文件中使用預處理器進行某些判斷時,會報錯,解決方法:這時,在模塊的build.cs中,加入bEnableUndefinedIdentifierWarnings = false;

 

3.包含某些外部庫頭文件產生:沒有將“_WIN32_WINNT_WIN10_TH2”定義爲預處理器宏,用“0”替換“#if/#elif 解決方法:在頭文件前加入: #define WIN32_LEAN_AND_MEAN

 

4.boost庫使用時,需要加入預定義以及取消未定義宏警告

PublicDefinitions.AddRange(new string[] { "BOOST_DISABLE_ABI_HEADERS" });

bEnableUndefinedIdentifierWarnings = false;

 

5.UE4 中將某些編譯警告信息當成了錯誤,可以在對應文件中加入如下信息將錯誤轉回警告

#pragma warning(push)//將當前警告信息入棧存儲起來

#pragma warning(default:4018)//這裏的4018是錯誤編號

你的code

#pragma warning(pop)//將棧頂存儲的警告信息覆蓋現在的警告信息

 

6.打包時如果有UE_Log輸出爲error類型,會打包出錯。

 

7.插件的打包問題:

必須使用c++工程,且用到的 插件模塊 的類型必須爲runtime。

https://docs.unrealengine.com/zh-CN/Programming/Plugins/index.html

 

8.UE4 debug時查看變量,變量顯示variable is optimized away and not available。

解決方法: 在想要查看變量得函數前後分別加 #pragma optimize("",off)  和 #pragma optimize("",on) 

 

9. USkeletalMeshComponent的 SetAnimationInstanceClass 以及 SetAnimationMode 方法,藍圖中使用會crash,解決方法是在使用前先重置一下SkeletalMesh(SetSkeletalMesh)

10.ue4 c++ 的FRotator 傳參是 y(pitch),z(yaw),x(roll),  不是xyz(巨坑)

11.藍圖類資源也可以通過LoadObject加載或Assetdata的loadasset加載,但是只有在編輯器模式下才會加載成功。加載後可通過object->GeneratedClass,獲得對應的類型(也就是_C後綴的類名稱)。

12.設置鼠標樣式或是顯示與否時,會出現沒有立即刷新,需要移動鼠標的情況,可以使用下面的代碼立即刷新鼠標

  1. auto& App = FSlateApplication::Get();

  2. App.QueryCursor(); //This line is refreshing the cursor (it executes fake mouse event for each platform).

 

 

13.unpossess後沒有possess,那麼會在一幀後重設targetview爲playercontroller。所以會出現unpossess後跟settargetview無效的情況。可以延遲一幀後設置settargetview

 

 

14.插件的代碼重新編譯不支持代碼的熱加載

 

15. 異步加載資源在沒有指定開啓多線程加載時,是在遊戲線程中進行的請先確保異步加載線程已經啓用,否則異步加載是有可能在遊戲線程(主線程)分時加載的。 在項目設置,Streaming分頁中,確保Async Loading Thread Enabled打開。或者在DefaultEngine.ini的[/Script/Engine.StreamingSettings]內加上s.AsyncLoadingThreadEnabled=True。或者,在你的遊戲進程/編輯器啓動進程加上參數-AsyncLoadingThread。 編輯器模式,以及編輯器的standalone模式下多線程加載無法啓用。

 

16.注意:資源沒有被引用時,會標記爲回收,回收時間大概是幾秒到幾分鐘。你也可以使用GEngine->ForceGarbageCollection(true);強制立即回收。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章