【问题标题】:Unity3D - Change local scale to world scaleUnity3D - 将本地比例更改为世界比例
【发布时间】:2017-06-09 01:02:23
【问题描述】:

我在尝试在 Unity 上实例化预制件时遇到了一些麻烦。我的主要问题是在尝试设置预制件的比例时,它有自己的比例,并使其与世界上已经存在的另一个 GameObject 的比例相同,以使两者大小相同。由于它们的局部比例不一样,即使我将两个 Y 的分量都设置为 1,它们的高度也不相同。如何通过脚本代码解决这个问题

【问题讨论】:

  • 您的资产/预制件在具有相同比例时是否设计为相同大小?例如,如果您有一个建筑物模型和一个汽车模型,它们通常会被建模,以便当两者在引擎中具有相同的比例时,它们的大小将成比例(建筑物比汽车大)。如果它们被建模为不同的尺寸,那么您将需要在“模型”下的导入检查器上设置比例因子(这是最重要的选项),或者您需要找出使它们均匀所需的比例并应用它到新的预制实例。

标签: c# unity3d


【解决方案1】:

当您从建模软件导入模型时,您需要调整 Scale Factor 以使模型大小匹配。这样,当它们在比例上匹配时,您将让它们在大小上匹配。

如果你想从代码中计算实际大小。您可以使用Mesh.bounds 来完成。一个例子:

Bounds bounds = GetComponent<MeshFilter>().mesh.bounds;
Vector3 size = bounds.size;

得到尺寸后,可以将localScale 相乘以匹配其他模型的尺寸。

您可以在文档herehere 中找到更多信息。

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2016-10-14
    • 2013-08-30
    • 2020-02-23
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多