C# 翻译单位?

C# 翻译单位?,c#,unity3d,units-of-measurement,cad,C#,Unity3d,Units Of Measurement,Cad,在Unity中,可以使用光线投射来计算各种测量值。例如,墙的直径、厚度和宽度。一种方法是捕捉用户在对象上的鼠标单击,然后使用光线投射点击捕捉鼠标在对象上单击的位置,然后根据所需的测量投射其他光线 见下文: 单击的墙的厚度为.0098、.0096和.0072。宽度为.0615、.0611和.060。直径为0.0475 虽然这些测量(据信)是正确执行和计算的,但不清楚结果如何转化为现实世界的测量单位 这在第四幅图中得到了最好的演示和展示。在其他CAD程序(如NX)中检查相同的直径,直径为0.4210

在Unity中,可以使用光线投射来计算各种测量值。例如,墙的直径、厚度和宽度。一种方法是捕捉用户在对象上的鼠标单击,然后使用光线投射点击捕捉鼠标在对象上单击的位置,然后根据所需的测量投射其他光线

见下文: 单击的墙的厚度为.0098、.0096和.0072。宽度为.0615、.0611和.060。直径为0.0475

虽然这些测量(据信)是正确执行和计算的,但不清楚结果如何转化为现实世界的测量单位

这在第四幅图中得到了最好的演示和展示。在其他CAD程序(如NX)中检查相同的直径,直径为0.4210“或英寸。厚度和宽度分别计算为0.075244”和0.252872”

因此,如何将结果统一起来(使用Vector3生成的结果。计算两点之间距离的距离)转换为真实世界的测量单位

用谷歌搜索这个主题会得到一个共同的答案:Unity的测量值是“游戏单位”,可以根据需要使用。虽然我掌握了这一点,但我不明白如何将“游戏单位”或Unity的任何测量单位真正转化为我在CAD程序中看到的测量结果

结果(CAD x Unity): 厚度:.075244英寸x.0098.0096和.0072。 宽度:.252872英寸x.0615.0611和.060。 直径:0.4210英寸x.0475

(注1:Unity和外部CAD程序中的模型比例相同。)

(注2:厚度和宽度的微小变化源于CAD程序测量两个平面之间距离的角度处的统一测量,即.009x和.06x。)

(注3:忽略第二种视觉效果中的不正确宽度标签“厚度”和所有Unity视觉效果中的英寸标签“均不正确”)


1单位通常被认为是1米,但是,正如您所读到的,它取决于您的实现,在这种情况下,看起来您实际上是从CAD中导出1英寸=1单位,因为您的结果看起来相似,但有点不一致

您获得不精确的原因很可能是由于Unity的碰撞系统不是非常精确,大多数碰撞器实际上比它们所代表的网格稍大,这将显著偏离您的微调测量值,而且Unity的精度比CAD低得多,因为Unity是一款游戏机由于需要实时执行,3D位置数据不是很精确(精度在4位数左右变得非常模糊),事实上,当您离开原点时,情况会变得更糟

我不建议尝试在任何类型的精确设计工作中使用Unity,特别是在表示真实世界时,但如果你死心塌地,你可能会想将对象放大10或100倍,以使数字更接近小数点以减少浮点错误,这显然是一种攻击

您可能还需要查看物理设置: 特别是“默认接触偏移”可能是相关的(尽管我不确定它是否会影响光线投射)


PS:我会将此作为评论发布,但rep系统不会让我这么做,您对每个环境之间的测量值的描述真的很混乱,下次可能会尝试将其格式化为表格或其他形式?

1单位通常被认为是1米,但正如您所读到的,它取决于您的实现,在这种情况下,看起来您是实际上,从CAD导出时,1英寸=1个单位,因为您的结果似乎相似,但有点不一致

您获得不精确的原因很可能是由于Unity的碰撞系统不是非常精确,大多数碰撞器实际上比它们所代表的网格稍大,这将显著偏离您的微调测量值,而且Unity的精度比CAD低得多,因为Unity是一款游戏机由于需要实时执行,3D位置数据不是很精确(精度在4位数左右变得非常模糊),事实上,当您离开原点时,情况会变得更糟

我不建议尝试在任何类型的精确设计工作中使用Unity,特别是在表示真实世界时,但如果你死心塌地,你可能会想将对象放大10或100倍,以使数字更接近小数点以减少浮点错误,这显然是一种攻击

您可能还需要查看物理设置: 特别是“默认接触偏移”可能是相关的(尽管我不确定它是否会影响光线投射)


PS:我会将此作为评论发布,但rep系统不会让我这么做,您对每个环境之间的测量值的描述真的很混乱,下次可能尝试将其格式化为表格或其他形式?

如果您的cad文件在毫米和英寸之间不一致,Unity无法解决该问题。它只能看到模型是
x单位
big,它不知道那些是什么单位,只能建议自己的测量单位:米。如果你的cad文件在毫米和英寸之间不一致,Unity无法解决这个问题。它只能看到模型是
x单位
big,它不知道那些是什么单位,只能建议自己的测量单位单位:米。