C# 通过脚本在屏幕上平滑地移动游戏对象,就像Unity中的动画一样

C# 通过脚本在屏幕上平滑地移动游戏对象,就像Unity中的动画一样,c#,unity3d,gameobject,C#,Unity3d,Gameobject,我试图将游戏对象移动到屏幕上的不同位置,我希望它们像动画一样移动,在程序运行时平滑地移动。我用的是运动的统一 我尝试了下面的代码,但这只是将对象立即移动到新位置,不会缓慢移动,以便用户可以看到它从当前位置移动到新位置。-就像一部动画片 myobject.transform.Translate(0f,0.5f,1f); 你的帮助将受到感谢。提前谢谢您必须在Update中使用Time.deltaTime,或者在FixedUpdate e、 g 您必须在Update中使用Time.delta

我试图将游戏对象移动到屏幕上的不同位置,我希望它们像动画一样移动,在程序运行时平滑地移动。我用的是运动的统一

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

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

你的帮助将受到感谢。提前谢谢

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

e、 g


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

e、 g


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

您需要的是
Vector3.Lerp

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

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

您需要的是
Vector3.Lerp

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

移动游戏对象的另一种方法是使用运动矢量,而不是指定目标点:

private Rigidbody rb;

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

void ChangeDirection(Vector3 dir)
{
    rb.velocity = dir;
}
私有刚体rb;
void Start()
{
rb=GetComponent();
改变方向(新向量3(1,1,0));
}
无效更改方向(矢量3方向)
{
rb.velocity=dir;
}

不要忘记在对象上添加刚体组件。

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

private Rigidbody rb;

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

void ChangeDirection(Vector3 dir)
{
    rb.velocity = dir;
}
私有刚体rb;
void Start()
{
rb=GetComponent();
改变方向(新向量3(1,1,0));
}
无效更改方向(矢量3方向)
{
rb.velocity=dir;
}
不要忘记在对象上添加刚体组件