0

嗨,我是统一的新手,我正在尝试为敌人创建一个 AI 脚本。在这门课中,我有敌人会通过生成一个随机数随机走到的路点,最初我有四个路点,但这是非常线性的。因此,我添加了更多内容,以使其看起来好像敌人漫无目的地四处走动,这个http://www.youtube.com/watch?v=QMSQaS1o1Kw可以看到一个示例。然后我添加了大约 20 个路点来完成随机化,但我不想实例化它们中的每一个,所以我想知道是否有可能在 for 循环中将它们实例化?

到目前为止,我的代码如下所示:

private var player : GameObject;
private var way0 : GameObject;
private var way1 : GameObject;
private var way2 : GameObject;
private var way3 : GameObject;

function Start()
{
    player = GameObject.Find("Player");
    way0 = GameObject.Find("way0");
    way1 = GameObject.Find("way1");
    way2 = GameObject.Find("way2");
    way3 = GameObject.Find("way3");
}

其他一切都通过 if 语句在更新函数中处理

4

1 回答 1

1

是的,您可以使用数组来存储您需要的航点。像这样:

private var waypoints : Array;

function Start() {
  player = GameObject.Find("Player");
  waypoints = new Array();
  for (var i = 0; i < WaypointCount; ++i) {
     waypoints.Push(GameObject.Find("way" + i)); //Push the waypoint in the array.
  }
  DoSomethingWith(waypoints[0]); //This is "way0".
}

WaypointCount您希望推送的航点数量在哪里。更准确地说,是满足您使用的命名模式的航点数量。在您发布的示例中,WaypointCount是 4。

于 2013-10-13T12:44:57.690 回答