Pao*_*aJ. 2 c# unity-game-engine unity5
我已将多维数据集添加到场景,并且缩放并放置到位置(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;
}
}
Run Code Online (Sandbox Code Playgroud)
但是多维数据集在两边都缩放,从顶部到底部。我想使用相同的因子进行缩放,但是Cube的底部保持在相同的位置。我试图在transform.localScale += new Vector3(0, 0.1f, 0);
和之间设置新的头寸,yield return null;
但我不知道如何获得确切的金额。(我试图阅读
Mesh planeMesh = gameObject.GetComponent<MeshFilter>().mesh;
Bounds bounds = planeMesh.bounds;
bounds.size.y;
Run Code Online (Sandbox Code Playgroud)
缩放之前和之后并添加到
transform.position.y
boundsAfter.size.y
和之间的区别
boundsBefore.size.y
但它移动太多。
如何解决呢?
您实际上可以通过两种方式执行此操作。
方法1:
从外部应用程序更改枢轴点。
在3D软件(例如Maya)中创建一个简单的多维数据集,然后将枢轴点定位到多维数据集的底部,然后将其导出到Unity。这应该开箱即用。
方法2:
将多维数据集父级绑定到一个空的GameObject。
步骤:
A.创建一个空的GameObject。
B。将新的GameObject移至多维数据集的位置,然后将新的GameObject的y轴移至多维数据集的底部。必须通过放大来精确定位y-pos。有关更多信息,请参见下面的动画。
C。现在将多维数据集拖动到新的GameObject,并且多维数据集应该是该新GameObject 的子级。现在,您可以将问题中的脚本附加到该新GameObject上,并且该脚本仅应在一侧缩放多维数据集。不要忘记删除直接附加到多维数据集的旧缩放脚本。
图像教程。高品质的版本在这里。