物体向前走,转180并向后走

时间:2016-04-07 14:07:50

标签: c# unity3d

我有这个对象向前走,当它到达某个x位置它应该停止,转180度然后向后走,然后当它到达它开始的位置时它转180度然后再向前走。 / p>

这就是我试图让他走路和转弯的方式:

public float Speed = 1f;
public float TurnSpeed = 1f;

void Start () {
    transform.position = new Vector3(-10, 0, -79);
}

void Update () {
    transform.Translate(new Vector3(0, 0, 1) * Speed * Time.deltaTime);
    if (transform.position.x < -1)
    {
        transform.Translate(new Vector3(0, 0, 0));
        transform.Rotate(0, 180 * Time.deltaTime, 0);
    }
}

他会继续前进而不是停止不确定为什么有任何帮助?

1 个答案:

答案 0 :(得分:1)

我对内容不熟悉,但每次更新时 - 您的第一行都说:

向前移动一个

你需要在到达转折点后反转这个,也许是这样:

void Update () {
    static boolean direction;
    if (direction)
        transform.Translate(new Vector3(0, 0, 1) * Speed * Time.deltaTime);
    else
        transform.Translate(new Vector3(0, 0, -1) * Speed * Time.deltaTime);

    if (transform.position.x < -1) //or whenever you want to turn
        direction = !direction;
}

别忘了旋转,或者你只是向后走;)