unity-game-engineinstantiationspawngameobjectspawning

Why can't these gameobjects instantiate in Unity3D?


In the below code snippet I'm trying to instantiate gameobjects at different probability rates but I keep on getting the following error:

No appropriate version of 'UnityEngine.Object.Instantiate' for the argument list '(Spawn06[])' was found.

The help would be much appreicated. Thanks.

public var Characters : Spawn06[];

function SpawnCharacters() {
var i = Random.Range(0, 100);

for(var j = 0; j < Characters.Length; j++) {
    if(i >= Characters [j].minProbabilityRange && i <= Characters [j].maxProbabilityRange) {
        temp = Instantiate(Characters);
        pos = temp.transform.position;
        temp.transform.position = new Vector3(Random.Range(-3, 4), pos.y, pos.z);
    }
}
}

public class Spawn06 {
    public var spawnCharacters : GameObject;
    public var minProbabilityRange : int = 0;
    public var maxProbabilityRange : int = 0;
}

Solution

  • You can't pass your an array of your class to Instantiate.

    for(var j = 0; j < Characters.Length; j++) {
        if(i >= Characters [j].minProbabilityRange && i <= Characters [j].maxProbabilityRange) {
            temp = Instantiate(Characters[j].spawnCharacters); // Pass a GameObject instead of an Array of Spawn06
            pos = temp.transform.position;
            temp.transform.position = new Vector3(Random.Range(-3, 4), pos.y, pos.z);
        }
      }
    }