如何在Unity中在运行时同时移动和缩放3D对象?

时间:2018-06-17 16:42:25

标签: c# animation unity3d coroutine

我需要在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);

        }
}

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

谢谢!

2 个答案:

答案 0 :(得分:2)

如果不改变原始代码的太多,你可以做类似的事情

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);
}

答案 1 :(得分:0)

你可以使用动画师,这是一个例子。

Unity 3D object animation example

你也可以使用像iTween这样的库(在资产商店中免费)来为位置和比例的矢量设置动画,也有转换选项,不仅可以线性转换(轻松进入四边形,弹跳,指数)等等。)

Unity Asset Store - iTween