无法在Unity中生成游戏对象

时间:2017-04-19 21:35:37

标签: c# unity3d unity5

void Spawnwave()
{
    //Standard unit is lvl1 unit
    int saverUnit = 1;
    int saverPossibilty = 100;
    System.Random randy = new System.Random();
    //This for gets the possibility for the first possible enemy
    for (int i = 0; i < possibilty.Length; i++)
    {
        if (possibilty[i] != 0)
        {
            saverUnit = i;
            saverPossibilty = possibilty[i];
            break;
        }
    }

    //As only 2 kind of units per wave can be spawned +1 spawns the "stronger" one
    for (int i = 0; i < level+5; i++)
    {
        if (randy.Next(100) > saverPossibilty)
        {
            StartCoroutine(SpawnUnit(saverUnit + 1));
        }
        else
        {
            StartCoroutine(SpawnUnit(saverUnit));
        }
    }
}

IEnumerator SpawnUnit(int unit)
{
    Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation);
    yield return new WaitForSeconds(timeBetweenEnemies);
}

所以我正在尝试制作Unity Tower Defense游戏。这两种方法应该产生5 +级别敌人的值,间隔为.5秒。我调试它并运行代码,但我没有得到任何新的游戏对象。

我试图寻找例如:Youtube(brackeys)和他的塔防教程的决议,但我仍然找不到我的错误。

感谢您的帮助, 米卡。

1 个答案:

答案 0 :(得分:0)

你应该像@ScottChamberlain建议的那样调用随机生成,10是任意数字。

int rnd = Random.Range(0,10)

虽然我目前无法测试这一点,但我的初衷是这条线

Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation);

应该是

GameObject clone = Instantiate(enemies[unit],spawnPoint.position, spawnPoint.rotation) as GameObject;

最后,你是如何做你的可能性阵列的。