我有这个对象向前走,当它到达某个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);
}
}
他会继续前进而不是停止不确定为什么有任何帮助?
答案 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;
}
别忘了旋转,或者你只是向后走;)