【发布时间】:2018-02-27 18:11:05
【问题描述】:
我有一个向前走的物体,当它到达某个 x 位置时,它应该停止,转 180 度然后往回走,然后当它到达开始的位置时,它会转 180 度并再次向前走。
这就是我试图让他走路和转身的方式:
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);
}
}
他会继续前进,不会停下来不知道为什么会有帮助?
【问题讨论】:
-
您的程序中是否存在可能导致此问题的循环?
-
我不确定,它应该向前移动,当 x 位置达到 -1 时它应该停止并转动,顺便说一句,我对统一很陌生
-
为什么不在地图上设置航路点,以便警卫巡逻?我假设你想要的。你所有的守卫都可以有一系列的航路点,并从一个到另一个(触发对撞机),带有寻路和 AddForce(比将家伙从一个地方“传送”到另一个更健康,例如移动位置)。然后,你只需要 transform.LookAt [waypoint gameobject] 就可以了。如果您想保留向量,为什么不选择 Vector3.MoveTowards 而不是您现在尝试做的丑陋的事情?顺便说一句,到目前为止您尝试了什么?
-
例如您是否尝试过 Debug.Log(transform.position);看看到底发生了什么? (我假设你没有。现在就去做,tadaa,你会看到你的东西哪里出了问题)
-
干杯伙伴你猜错了,他只是一个来回走动的过路人,你能建议和回答