我有一个GameObject
的四元组MeshFilter
。默认情况下它的尺寸为1x1,我可以通过设置其比例来更改其大小,但这也会相对于比例的变化调整其所有子元素的大小。我试过给它RectTransform
,但改变宽度和高度似乎不会改变它的大小。常规的Transform组件没有宽度或高度控件。
如何在不缩放所有子元素的情况下在Unity中设置网格的大小?
答案 0 :(得分:0)
Unity将网格以及图像和声音视为在应用程序之外创建的资源。当然,在Unity中你可以移动3D模型,缩放和旋转它们,但这些是非常基本的3D建模功能,你将无法在其中正确编辑3d模型。就个人而言,我认为这仅适用于由缩放立方体制成的粗糙原型。
因此,如果您想修改这些资产,您可以:
打开一个单独的应用程序(Blender,3ds Max,Maya for 3d models)并创建所需的网格。这可能是您想要的解决方案。
创建一个将在运行时更改Mesh object的脚本。虽然它是解决某些问题的好方法,但它可能不是你想要的。
使用为Unity带来3D建模功能的第三方软件包之一,例如ProBuilder。请注意,我没有使用它,这不是推荐 - 我只是表明存在这种替代方案。
答案 1 :(得分:0)
你需要计算它:)
例如,你有:
actualBounds.x
是100
所有维度的缩放均为1
。
var expectedBoundX = 150
var newScaleX = expectedBoundX / (actualBounds.x/scaleX);
之后只需将此newScaleX
设置为X
比例:)