UE4让所有玩家进入FoV

时间:2018-08-24 21:31:57

标签: unreal-engine4 unreal-blueprint

我正在尝试构建玩家FoV锥体中所有玩家棋子的数组。由于明显的性能原因,我不想不必遍历GetAllActorsofClass。这将在每一刻完成。

2 个答案:

答案 0 :(得分:0)

GetAllActorsOfClass遍历该类事物的哈希表。即使有100名玩家,这也不是很昂贵的事情。我可以想象,“让演员陷入困境”只会在幕后做。

如果可以使用它,则可以从那里使用ConvertWorldLocationToScreenLocation,然后使用GetViewportSize将其与屏幕边界坐标进行比较。

我不会想到的唯一不使用GetAllActorsOfClass的方法是使用一个巨大的多框跟踪并基于点积进行过滤,以计算平截头体“端”处矩形的大小。痕迹便宜,点产品便宜。它是否比GetAllActorsOfClass便宜,将取决于您的游戏。

如果性能确实是一个问题,最好的解决方案是使用代码。根据您的实现,您可能可以使用蓝图本地化来获得额外的提升,而无需深入研究代码。

答案 1 :(得分:0)

使用MultiSphereTrace从玩家到他的FOV方向,并在命中结果之间循环。

确保正确设置碰撞层,以便轨迹仅与目标玩家互动。

我在手机游戏中这样做,每帧大约有10-20个演员,而且效果很好。