我希望我的对象永远向目标方向移动或直到它碰撞,碰撞部分我已经处理它;但是,我在运动部分遇到问题。翻译对象直到碰撞
我第一次尝试使用的代码
Vector2 diff = target - transform.position;
float angle = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0.0f, 0.0f, angle);
这些线路这完美的作品和我的对象,我希望它的方向旋转旋转我的目标。 在我更新的方法,我有以下
if (isMoving)
{
Vector2 f = transform.forward;
transform.position = Vector3.MoveTowards(transform.position, target + Vector3.forward, speed * Time.deltaTime);
}
现在这个运行,但未能完成目标,我知道为什么,这是有道理的,但不知道如何解决它。物体以正确的方向移动,但我不希望它停在目标上,我希望它继续前进。
我也试过
rb.MovePosition(rb.position + f * Time.deltaTime * speed);
RB是rigidbody2D
以及
rb.AddForce(rb.position + f * Time.deltaTime * speed);
但在这两种情况下,物体旋转,但从来没有移动
我也用翻译和MovePosition的行为相同
P.S.这是一个2D游戏
发布完整的代码,包括更新,碰撞触发等... – Isma
@Isma谢谢你,我可以通过使用直线方程来解决它。我回答了我的问题,如果你想看看这种方法。 –