原创文章,转载请注明出处。
UE4 WorldSetting
是一个比较特殊的Actor,在World的最开始被Spawn出来,优先于其他的Actor
它不会出现在世界大纲里面,但是通过GetAllActorOfClass是可以拿到的,
它不允许被Destroy。
最近遇到一个问题
最近在做大场景的时候发现角色被Destroy了,为啥呢,在EndPlay的地方我发现是Actor里面的边界检查
检测到了角色超出了Level边界,被Destroy了。
怎么解决
怎么让它不做边界检查,那么就把下面的开关调整为false就可以了。
Enable World Bounds Checks
衍生问题1》 LineTrace有明显偏移 我还未解决
不知道是引擎Bug还是怎么回事,超过边界之后,再去做LineTrace的话,可以发现射线击中的点是和点击的位置是有明显的偏移的。
跟踪了半天没找到问题,回头多花点时间来跟踪吧,可能还是没有理解这个边界检查的真正意义
可以看下面的图的偏移,和我鼠标点的位置还是有很明显的偏移的
衍生问题2》 角色用Movement组件不能移动
编辑器模式下点击一个角色,看一下它的坐标就可以移动了
但是shipping下肯定没办法这么做,这个估计90%就是引擎的Bug了。
(UE4 EngineVersion:4.25.4源码版)
于是我将移动改成了
FVector dir = MyCamera->GetForwardVector();
dir.Z = 0.f;
AddActorWorldOffset(dir*fAxis*(GetCharacterMovement()->GetMaxSpeed() / 100), true);
谢谢,创作不易,大侠请留步… 动起可爱的双手,来个赞再走呗 <( ̄︶ ̄)>