我已将立方体添加到场景中并缩放并放置到位置 ( 0, 0, 0 )。 我正在使用附加到多维数据集的代码缩放该多维数据集
IEnumerator Start() {
StartCoroutine("DoSomething", 2.0F);
yield return new WaitForSeconds(1);
StopCoroutine("DoSomething");
}
IEnumerator DoSomething(float someParameter) {
while (true) {
transform.localScale += new Vector3(0, 0.1f, 0);
yield return null;
}
}
但立方体在两侧缩放,顶部和底部。我想用相同的系数缩放,但立方体的底部保持在相同的位置。
我试图在 transform.localScale += new Vector3(0, 0.1f, 0);
和 yield return null;
之间设置新位置,但我不知道如何得到确切的数量。
(我试着阅读
Mesh planeMesh = gameObject.GetComponent<MeshFilter>().mesh;
Bounds bounds = planeMesh.bounds;
bounds.size.y;
前后缩放并添加到
transform.position.y
之间的区别
boundsAfter.size.y
和 boundsBefore.size.y
但它移动太多了。
如何解决?
最佳答案
您实际上可以通过两种方式做到这一点。
方法一:
从外部应用程序更改枢轴点。
在 Maya 等 3D 软件中创建一个简单的立方体,然后将轴心点定位到立方体的底部,然后将其导出到 Unity。这应该开箱即用。
方法 2:
将立方体作为空游戏对象的父级。
步骤:
A.创建一个空的游戏对象。
B。将新游戏对象移动到立方体的位置,然后将该新游戏对象的 y 轴移动到立方体的底部。必须通过放大来精确定位 y 坐标。有关详细信息,请参见下面的动画。
C。现在将 Cube 拖到那个新的 GameObject,立方体应该是那个新 GameObject 的 child。您现在可以将问题中的脚本附加到那个新的 GameObject 并且它应该只在一侧缩放立方体。不要忘记删除直接附加到多维数据集的旧缩放脚本。
图像教程。高质量版here .
关于c# - 仅在一侧缩放游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39216454/