unreal-engine4 - UPrimitiveComponent 的 GetMass 和 CalculateMass 有什么区别?
问题描述
在 udemy 课程中,我刚刚参加了一个讲座,我们需要计算一些东西的质量。
我最终使用了CalculateMass
;但是,教练用了GetMass
。
CalculateMass的虚幻文档显示它接受一个参数FName BoneName
;但是,我没有使用这个参数,它仍然有效。该文件还谈到了CalculateMass
可能~0.1
偏离实际质量的千克;但是,这看起来微不足道。
这两个功能之间的重要区别是什么?什么时候应该使用一个而不是另一个?
解决方案
float CalculateMass(FName BoneName)
返回指定骨骼/身体的质量。在物理资源中,您可以为单个网格设置多个物理体并分别获取质量。因此骨骼名称参数。如果已指定,它也会返回覆盖的质量。这是引擎假定的质量,与 GetMass 相比可能略有不同。而且它似乎更快。
另一方面...
浮动 GetMass() 常量
调用CalculateMass(NAME_None);非常相似
除了它返回物理引擎计算的实体实例的真实质量。
为了获得准确的值,它会导致物理引擎上的线程锁来读取该值。
所以这在执行时会慢一些。
除非确切的质量必须精确,否则我会使用CalculateMass 。
如果不经常更改,还将计算的质量缓存在变量中。
您还可以深入研究引擎代码以更好地了解这些值的来源;)
推荐阅读
- uima - 使用 UIMA Ruta:如何注释文本的第一个标记并进一步使用该注释?
- android - Android服务不断停止-“不允许后台执行:接收意图”
- angular - Angular Pipe 返回值,但 ngFor 不会显示它们
- php - 除 root 以外的所有用户的 MySQL 访问被拒绝
- php - 如何在 TPL 文件中的 prestashop 1.7 中检测 smarty 中的设备?
- angular - Angular 7 测试用例抛出广播错误
- php - S3 CreateEventSourceMapping 触发“找不到操作”错误
- makefile - 空运行 Makefile,当“没有任何事情要为‘所有’做”时
- pervasive-sql - 如何从重复的行中修改唯一的行
- c# - C#中的线程不对应