2016-08-07 106 views
0

我有一个GameObject和一个Quad MeshFilter。默认情况下,它的尺寸为1x1,我可以通过设置它的比例来更改它的大小,但是也会根据比例尺的变化调整它的所有子元素。我曾尝试给它一个RectTransform,但改变宽度和高度似乎没有改变它的大小。常规的Transform组件没有宽度或高度控件。在Unity中设置网格的尺寸

如何在Unity中设置网格的大小而不缩放所有子元素?

+0

你要上传的孩子的图片,你不想来调整GameObjects?这将有助于想出一个解决方案... – Programmer

+0

什么是你的子对象(那不需要从父变换)?你需要一些缩放和一些不? –

回答

0

Unity会将网格以及图像和声音视为在应用程序之外创建的资产。当然,在Unity中,您可以移动3D模型,缩放和旋转它们,但这些都是非常基本的3D建模功能,您将无法正确编辑其中的3D模型。就我个人而言,我认为这仅仅适用于由比例立方体制成的粗糙原型。

所以,如果要修改这些资产,您可以:

  1. 打开一个单独的应用程序(搅拌机时,3ds Max,Maya制作3D模型),并创建你想要一个网格。这可能是你想要的解决方案。

  2. 创建一个在运行时将更改Mesh object的脚本。虽然这是解决某些问题的好方法,但这可能不是您想要的。

  3. 使用为Unity带来3D建模功能的第三方软件包之一,如ProBuilder。请注意,我没有使用它,这不是一个建议 - 我只是表明,这种选择存在。

0

需要calc下吧:)

  1. 从渲染器组件以当前边界。这是你在场景中的真实物体尺寸。
  2. 计算预期范围的新比例。

如实施例你有

actualBounds.x是100

规模在所有维度上为1;

var expectedBoundX = 150 

var newScaleX = expectedBoundX/(actualBounds.x/scaleX); 

后刚刚成立这个newScaleX到X比例:)