基本的に私は産卵後に敵に産卵する産卵スクリプト(2Dゲーム)を持っています。また、SpawnerScriptがランダムな敵に出現するように、敵のプレハブの配列を追加しました。しかし、私はトランスフォーム(a.k.a:3Dキューブ)内のランダムな位置にプレハブで産卵することにいくつか問題があります。あなたはゲームをプレイするときに私のスポーナーが何かに産卵していないのを見て、私が産卵したい敵の数を含めたことを確かめ、私のプレハブを付けたことを確認しました。また、私のプロジェクトファイルにバグがないことを確認しました。たぶん私のコードが間違っている、私は分からない。Unity2D:産卵スクリプトのトラブル
マイ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);
}
}
いただきありがとうございます:)
ありがとうございますが、私はこのエラーがあります:IndexOutOfRangeException:配列インデックスが範囲外です。 SpawnScript.Spawn() –
IndexOutOfRangeExceptionは、存在しない配列要素のアクセシビリティを試みているために発生します。 enemyIndex変数に1を引く必要があります:int enemyIndex = enemy.Length -1; –
はい、必要に応じて編集します。整数の範囲の場合、最大制限は排他的です。だから減算の必要はありません。直接長さを置くOPは例外を引き起こした。 OPが長さから1を引いたとしても、常時インスタンス化されるゲームオブジェクトは1つだけです。 –