首页 > 解决方案 > 如何在 Unity 运行时同时移动和缩放 3D 对象?

问题描述

我需要在运行时在 Unity中移动缩放3D 对象。

我可以这样移动它:

void Update(){

public Transform target_1;
float relocationSpeed = 10;
float step = relocationSpeed * Time.deltaTime;

MyObject.transform.position = Vector3.MoveTowards (MyObject.transform.position, target_1.position, step);
}

我可以像这样使用协程来扩展它:

float scaleSize = 20;

IEnumerator ScaleUpMyObject(){

        for (var i = 0; i < scaleSize; i++) {

            MyObject.transform.localScale += new Vector3 (1, 1, 1);
            yield return new WaitForSeconds(0.1f);

        }
}

但是同时移动和缩放我的对象的最佳方法是什么?

谢谢!

标签: c#animationunity3dcoroutine

解决方案


在不更改太多原始代码的情况下,您可以执行以下操作

public Vector3 wantedSize = new Vector3(5, 5, 5);
void Update()
{
    float relocationSpeed = 10;
    float step = relocationSpeed * Time.deltaTime;

    MyObject.transform.position = Vector3.MoveTowards(MyObject.transform.position, target_1.position, step);
    MyObject.transform.localScale = Vector3.MoveTowards(MyObject.transform.localScale, wantedSize, step);
}

推荐阅读