如何使物体以一定速度移动到一个点,并以另一个速度从该点移动?

时间:2019-04-07 19:16:05

标签: c# unity3d

我试图将物体以一定速度移动到一个点,并使其到达该点时停止。

  void FixedUpdate()
    {
      if (transform.position.y == 0f) {
        rb.velocity = new Vector2(-speed, 0f);
      } //first change of the velocity

      if (transform.position.x == 0f){
        rb.velocity = new Vector2(0f, 0f);
      }
    }//here i want to stop
.........................................................

public void MoveR()
    {
      rb.velocity = new Vector2(-speed, upSpeed);
    }

1 个答案:

答案 0 :(得分:1)

我不明白您的逻辑。如果要按照要求将对象移动到特定位置。在Unity中有一种更简单的移动对象的方法。参见Unity Documentation

public class Example : MonoBehaviour
{
    public Vector3 myTarget;

    private void Start()
    {
        StartCoroutine(MoveTo());
    }

    private IEnumerator MoveTo()
    {
        while (transform.position != myTarget)
        {
            transform.position = Vector3.MoveTowards(transform.position, myTarget, Time.deltaTime * 2f);

            yield return null;
        }

    Debug.Log("We reached Target. Done!");
    yield return null;
    }
}

如果需要,可以将myTarget声明为GameObject。在这种情况下,您将需要创建一个空的gameObject或选择一个已经存在的gameObject。