Unity2D:产生脚本的麻烦

时间:2016-08-06 20:43:11

标签: c# unity3d spawn

所以基本上我有一个产卵脚本(2D游戏),它会在产生延迟后产生一个敌人。我还添加了一系列敌人预制件,以便SpawnerScript能够随机产生敌人。但是我在变换中随机位置的预制件中产生了一些问题(a.k.a:3D立方体)。当我玩游戏时,你看到我的产生者并没有产生任何东西,我确保我已经包含了我想要产生多少敌人的大小。并确保我已经附加了我的预制件。我还确保我的统一项目文件没有错误。也许我的代码错了,我不确定。

我的SpawnerScript:

public float RateOfSpawn = 1;
public float spawnTime = 2;

public GameObject[] enemy;

void Start(){
    InvokeRepeating ("addEnemy", spawnTime, spawnTime);
}

void Spawn () {           
    // Random position within this transform- 3Dcube

    var x1 = transform.position.x - GetComponent<Renderer> ().bounds.size.x / 2;
    var x2 = transform.position.x + GetComponent<Renderer> ().bounds.size.x / 2;

    var spawnPoint = new Vector2 (Random.Range (x1, x2), transform.position.y);
    int enemyIndex = enemy.Length;
    Instantiate (enemy[enemyIndex],spawnPoint,Quaternion.identity); 
 }
}

谢谢:)

1 个答案:

答案 0 :(得分:1)

您必须调用正确的功能才能使其正常工作。

void Start()
{    
    InvokeRepeating ("Spawn", spawnTime, spawnTime);
}

您必须致电"Spawn"而不是"addEnemy"

同时更改Instanatiate以进行正确的实例化。

Instantiate (enemy[Random.Range (0, enemyIndex)], spawnPoint, Quaternion.identity);

enemy[Random.Range (0, enemyIndex)]可帮助您从敌人的索引0enemyIndex-1中选择随机敌人。

异常的原因是将数组的长度作为索引。最大索引限制始终为length-1。