首页 > 解决方案 > UPrimitiveComponent 的 GetMass 和 CalculateMass 有什么区别?

问题描述

在 udemy 课程中,我刚刚参加了一个讲座,我们需要计算一些东西的质量。

我最终使用了CalculateMass;但是,教练用了GetMass

CalculateMass的虚幻文档显示它接受一个参数FName BoneName;但是,我没有使用这个参数,它仍然有效。该文件还谈到了CalculateMass可能~0.1偏离实际质量的千克;但是,这看起来微不足道。

这两个功能之间的重要区别是什么?什么时候应该使用一个而不是另一个?

标签: unreal-engine4

解决方案


float CalculateMass(FName BoneName)

返回指定骨骼/身体的质量。在物理资源中,您可以为单个网格设置多个物理体并分别获取质量。因此骨骼名称参数。如果已指定,它也会返回覆盖的质量。这是引擎假定的质量,与 GetMass 相比可能略有不同。而且它似乎更快。

另一方面...

浮动 GetMass() 常量

调用CalculateMass(NAME_None);非常相似

除了它返回物理引擎计算的实体实例的真实质量。

为了获得准确的值,它会导致物理引擎上的线程锁来读取该值。

所以这在执行时会慢一些。

除非确切的质量必须精确,否则我会使用CalculateMass 。

如果不经常更改,还将计算的质量缓存在变量中。

您还可以深入研究引擎代码以更好地了解这些值的来源;)


推荐阅读