我有一个脚本,让敌人以相同的速度向玩家移动,但是我试图让敌人减速,然后在他改变方向时加速。敌人当前仅向左移动并向玩家的位置书写。这是我的老板在更新功能中附加的脚本中的代码:
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);
没有人知道如何使敌人减速,然后在改变方向时逐渐提高速度,然后在完成改变方向后恢复正常速度
要获得位置(米/秒),您需要乘以速度* 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);
带有加速度符号+或-您将确定实体速度是增加(加速)还是减小(减速)。
希望有所帮助