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;
}
不要忘记在对象上添加刚体组件