敌人AI不工作

本文关键字:工作 AI 敌人 | 更新日期: 2023-09-27 18:18:05

我最近决定编写自己的AI,让监狱游戏中的守卫向前和向后行走。值得注意的是,他先向右走,然后向左走,然后重复。我有一个while循环来设置他的坐标并在公共void函数之间切换,但它似乎不起作用:守卫只是永远朝一个方向走。

还有其他错误,所以我需要一个专家谁可以解决这个问题,如果你得到我想做的。下面是代码:

using UnityEngine;
using System.Collections;
public class enemyAI : MonoBehaviour 
{
private float rightDistance;
private float leftDistance;
public void moveRight(float rightDistance)
{
    rightDistance = 0.02f;
    transform.position = new Vector3(transform.position.x + rightDistance, transform.position.y, transform.position.z);
    yield return new WaitForSeconds(1);
}
public void moveLeft(float leftDistance)
{
    leftDistance = 0.02f;
    transform.position = new Vector3(transform.position.x - leftDistance, transform.position.y, transform.position.z);
    yield return new WaitForSeconds(1);
}

public IEnumerator move ()
{
    int i = 0;
    while (i < 10)
    {
        moveRight();
        yield return new WaitForSeconds(1);
        moveLeft();
    }
}

// Update is called once per frame
void Update () 
{
    StartCoroutine(move());
}
}

敌人AI不工作

如何称呼move() ?它需要与StartCoroutine(move());一起调用,以枚举Unity的WaitForSeconds。关于类似的问题,请参阅此问题。

while (i < 10)
{
    moveRight();
    yield return new WaitForSeconds(1);
    moveLeft();
}

另外,您是否忘记增加i ?