Почему эти игровые объекты не могут быть созданы в Unity3D? - PullRequest
0 голосов
/ 08 апреля 2020

В приведенном ниже фрагменте кода я пытаюсь создать экземпляры игровых объектов с разной вероятностью, но продолжаю получать следующую ошибку:

Нет соответствующей версии 'UnityEngine.Object.Instantiate' для списка аргументов ' (Spawn06 []) 'был найден.

Помощь будет очень оценена. Спасибо.

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

1 Ответ

1 голос
/ 08 апреля 2020

Вы не можете передать свой массив вашего класса в 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);
    }
  }
}
...