- debugeditor模式下,在LoadPackage过程中crash,vs报出Stack overflow的错误
这是由于Package层数过多,vs栈不够用导致的。而ue4用UBT导致不能直接修改项目的栈大小。之前项目后期就因为这个崩溃导致大家没法再用debug模式进行开发。直接的解决办法是修改UEBuildWindows.cs中的LinkEnvironment.DefaultStackSize,这里默认赋值为Target.WindowsPlatform.DefaultStackSize,代码跟了一下我这边环境该值是5MB,我这里直接将其乘以3,项目启动成功。
https://answers.unrealengine.com/questions/750298/how-to-increase-stack-size-for-unreal-engine.htmlanswers.unrealengine.com- 角色行走过程中胶囊体与别的物体发生碰撞时,Hit信息中并没有附带物理材质的信息
这是因为默认情况下胶囊体的bReturnMaterialOnMove为false,改为true就有了。
这个碰撞信息是在移动组件中先创建FCollisionResponseParams变量,然后进行碰撞查询时产生的,详情见UPrimitiveComponent::InitSweepCollisionParams,断点调试流程。
- Error MSB3073 The command "chcp 65001 >NUL
降低vs版本到vs2019 Version 16.5.0
https://www.reddit.com/r/unrealengine/comments/gphjjj/unable_to_compile_c_project_425/www.reddit.com- 由于使用incredibuild导致的编译错误
在类似这个路径下:C:UsersusernameAppDataRoamingUnreal EngineUnrealBuildTool找到BuildConfiguration.xml文件打开,
加上这段:
<BuildConfiguration>
<bAllowXGE>false</bAllowXGE>
</BuildConfiguration>
参考:
http://yekdniwunrealengine.blogspot.com/2017/11/incredibuild.htmlyekdniwunrealengine.blogspot.com- ue4中new对象的操作是先allocateobject然后调用c++标注的placement new:
char* buf = new char[sizeof(A) * 3];//申请了3个A的内存
A* pc