我试图将GameObjects移动到屏幕上的不同位置,我希望它们像动画一样移动,并在编程运行时平稳地移动。我将Unity与Leapmotion一起使用
我尝试了下面的代码,但这只是将对象立即移动到新位置,它不会缓慢移动它,因此用户可以看到它从当前位置移动到新位置。 -就像动画一样。
myobject.transform.Translate(0f,0.5f,1f);
将为您提供帮助。预先谢谢你
答案 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;
}
别忘了在对象上添加一个刚体组件。