首页 > 解决方案 > 为什么这些游戏对象不能在 Unity3D 中实例化?

问题描述

在下面的代码片段中,我试图以不同的概率实例化游戏对象,但我不断收到以下错误:

未找到参数列表“(Spawn06[])”的“UnityEngine.Object.Instantiate”的适当版本。

帮助将不胜感激。谢谢。

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;
}

标签: unity3dinstantiationspawngameobjectspawning

解决方案


您不能将您的类数组传递给实例化。

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);
    }
  }
}

推荐阅读