私はあなたがStart()
機能でspawnindex
を呼び出しているためであると考えています。
これは、あなたのspawnindex
が再生モードに達したときにいつも一度だけStart()
機能と同じ番号になることを意味します。
これは同じ番号を持つobjectIndex
を意味するので、常に同じオブジェクトが生成されます。
これは、すべてのスポーンされたオブジェクトが同じ番号を使用してスポーンすることを意味します。階層を見ると、GameObjects
はおそらくすべて同じ位置にあり、同じオブジェクトにあります。
GameObject
ごとに異なる番号を生成する方法を見つける必要があります。 :-)
EDIT:
このコードは、ユニティのウェブサイトからチュートリアルの一つからです。設定された時間率でオブジェクトを生成します。あなたは同じことをすることができますが、非常に少ない数でスポーンタイムレートを持っている、そのようにあなたのGameObject
のすべてが同時に発生したように見えます。
void Start()
{
// Call the Spawn function after a delay of the spawnTime and then continue to call after the same amount of time.
InvokeRepeating ("Spawn", spawnTime, spawnTime);
}
void Spawn()
{
// If the player has no health left...
if(playerHealth.currentHealth <= 0f)
{
// ... exit the function.
return;
}
// Find a random index between zero and one less than the number of spawn points.
int spawnPointIndex = Random.Range (0, spawnPoints.Length);
// Create an instance of the enemy prefab at the randomly selected spawn point's position and rotation.
Instantiate (enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
}
出典
2016-06-16 08:59:01
Tom
コードボタンを使用して、4つのスペースをインデントすることができます。現時点では、コードとしてフォーマットされていません。また、 'UnityEngineを使用しています'の後に続く行はありません。 – AlBlue