通过脚本流畅地在屏幕上移动GameObject,就像Unity中的动画一样

时间:2019-04-21 12:43:50

标签: c# unity3d gameobject

我试图将GameObjects移动到屏幕上的不同位置,我希望它们像动画一样移动,并在编程运行时平稳地移动。我将Unity与Leapmotion一起使用

我尝试了下面的代码,但这只是将对象立即移动到新位置,它不会缓慢移动它,因此用户可以看到它从当前位置移动到新位置。 -就像动画一样。

    myobject.transform.Translate(0f,0.5f,1f);

将为您提供帮助。预先谢谢你

3 个答案:

答案 0 :(得分:1)

您必须在Time.deltaTime中使用Update或在Time.fixedDeltaTime中使用FixedUpdate

例如

myobject.transform.position += (direction * Time.deltaTime);

答案 1 :(得分:1)

transform.Translate将继续按照提供的方向移动对象

您正在寻找的是Vector3.Lerp

obj.transform.position = Vector3.Lerp(obj.transform.position, new Vector3(0f, 0.5f, 0f), Time.deltaTime * speed);

答案 2 :(得分:0)

移动GameObject的另一种方法,但不指定目标点,而是使用运动矢量:

private Rigidbody rb;

void Start()
{
    rb = GetComponent<Rigidbody>();
    ChangeDirection(new Vector3(1,1,0));
}

void ChangeDirection(Vector3 dir)
{
    rb.velocity = dir;
}

别忘了在对象上添加一个刚体组件。