动态创建变量名称并实例化它们(Unity)

时间:2013-10-13 12:23:09

标签: unity3d instantiation unityscript

嗨,我是团结的新手,我正在尝试为敌人创建一个AI脚本。在这个课程中,我有一个方法点,敌人将通过生成一个随机数来随机行走,最初我有四个路点,但这是非常线性的。因此,我添加了更多内容,使其看起来好像敌人漫无目的地绕着一个例子可以看到http://www.youtube.com/watch?v=QMSQaS1o1Kw。然后我添加了大约二十多个方向点来完成随机化它但我不想实例化它们中的每一个所以我想知道是否有可能在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语句

在更新功能中处理其他所有内容

1 个答案:

答案 0 :(得分: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。

相关问题