【发布时间】:2019-06-10 01:05:01
【问题描述】:
在 Unity 中,可以使用 Raycasting 来计算各种测量值。例如直径、壁厚和宽度。一种方法是捕捉用户对对象的鼠标点击并使用 RaycastHits 捕捉鼠标点击对象的位置,然后根据所需的测量投射额外的光线。
见下图: 单击的壁厚为 0.0098、0.0096 和 0.0072。宽度为 0.0615、0.0611 和 0.060。直径为 0.0475。
虽然这些测量(相信是)正确执行和计算,但不清楚结果如何转换为现实世界的测量单位。
这在第四张图片中得到了最好的展示和展示。在其他 CAD 程序(例如 NX)中检查相同的直径,直径为 0.4210" 或英寸。厚度和宽度也分别计算为 0.075244" 和 0.252872"。
那么,Unity 中的结果如何,(使用 Vector3.Distance 计算两点之间距离产生的结果)转换为现实世界的测量单位?
在谷歌上搜索该主题会得出一个常见的答案:Unity 的测量值是“游戏单位”,可以根据需要使用。虽然我掌握了这一点,但我不明白如何将“游戏单位”或 Unity 真正的测量单位转换为我可以在 CAD 程序中看到的测量结果。
结果(CAD x Unity): 厚度:0.075244" x 0.0098、0.0096 和 0.0072。 宽度:0.252872" x 0.0615、0.0611 和 0.060。 直径:0.4210" x .0475
(注 1:Unity 和外部 CAD 程序中的模型比例相同。)
(注意 2:厚度和宽度的细微变化是由于 Unity 在 CAD 程序测量两个平面之间的距离的角度(即 0.009x 和 .06x)处进行的测量导致的。)
(注意 3:忽略第二个视觉对象中不正确的宽度标签为“厚度”和所有 Unity 视觉对象中的英寸标签“,因为两者都不正确)。
【问题讨论】:
标签: c# unity3d units-of-measurement cad