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);强制立即回收。

 

 

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