让敌人在Unity中朝玩家加速

问题描述 投票:0回答:1

我有一个脚本,让敌人以相同的速度向玩家移动,但是我试图让敌人减速,然后在他改变方向时加速。敌人当前仅向左移动并向玩家的位置书写。这是我的老板在更新功能中附加的脚本中的代码:

Vector2 targetPosition = new Vector2 (player.transform.position.x, transform.position.y); 
transform.position = Vector2.MoveTowards (transform.position, targetPosition, moveSpeed * Time.deltaTime);

我也尝试过使用Lerp并使用transform.position作为第一个参数,但是当玩家靠近时,boss变慢,而玩家离开时,boss变快。

transform.position = Vector2.Lerp (transform.position, targetPosition, moveSpeed * Time.deltaTime);

没有人知道如何使敌人减速,然后在改变方向时逐渐提高速度,然后在完成改变方向后恢复正常速度

c# unity3d
1个回答
0
投票

要获得位置(米/秒),您需要乘以速度* Time.deltatime,从而获得米。要处理加速度,您需要处理变速。加速度是m / s2,乘以* Time.deltatime,您将获得即时速度,而该速度* Time.deltaTime将为您提供位置。

这里有一些伪代码(步长和速度应该是类变量,并且在更新中进行了修改:]

speed += accel * Time.deltaTime
step +=  speed * Time.deltaTime; // calculate distance to move
transform.position = Vector3.MoveTowards(transform.position, target.position, step);

带有加速度符号+或-您将确定实体速度是增加(加速)还是减小(减速)。

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.