Я добавил куб в сцену, и я масштабировался и помещался в положение (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;
}
}
но Cube весы с обеих сторон, сверху и снизу. Я хочу масштабировать с одинаковым коэффициентом, но нижняя часть 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;
до и после того, как масштаб и добавить к
transform.position.y
Разница между boundsAfter.size.y
и boundsBefore.size.y
, но он движется слишком много.
Как решить эту проблему?
Вы проблема заключается в том, что вы только хотите масштабировать куб с одной стороны? только в направлении вверх не вверх и вниз при масштабировании? – Programmer
@Programmer Да, например, если дно куба находится на 0 на координатах y после шкалы, я хочу остановиться на координатах 0 на y.На данный момент он масштабируется, но нижняя часть куба переходит к координатам менее 0 на y. –