Unity – Spaceship Shooting Game – JS – Game Controller
1. MAIN TOP MENU> GameObject> Create Empty> rename it ‘Game Controller’
2. Inspector> Transform> small gear icon> Reset
3. Inspector> Assign the tag GameController
Generate a single asteroid
4. Assign the cript ‘GameController.js’
#pragma strict var hazard : GameObject; // oggetto pericoloso - Assign the asteroid prefab inside Inspector var spawnValues : Vector3; // Assign the max value of asteroid Vector3 position inside Inspector example X=6 Z=16 function Start () { SpawnWaves (); } function SpawnWaves () { // Asteroid position, Random values: X -6 to 6 | Z 16 to -16 var spawnPosition : Vector3= new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z); // Asteroid rotation var spawnRotation : Quaternion= Quaternion.identity; // Render the hazard Instantiate (hazard, spawnPosition, spawnRotation); }
Generate multiple asteroids
#pragma strict // ######################### VARIABILI ASTEROIDI START ################################## // Assegnare da Inspector il prefab Asteroid var hazard : GameObject; // Assignare da Inspector la posizione nella quale può essere generato Asteroid, // per X=6, sarà uguale per X a +6 o -6 unità Unity dal centro 0,0,0 var spawnValues : Vector3; // Assegnare da Inspector il numero di asteroidi per ondata da generare var hazardCount : int; // Assegnare da Inspector il tempo di attesa nel generare i singoli asteroidi di un'ondata var spawnWait : float; // Assegnare da Inspector il tempo di attesa per generare il primo asteroide // il giocatore avrà il tempo di concentrarsi prima di iniziare a giocare var startWait : float; // Assegnare da Inspector il tempo di attesa tra un'ondata e la successiva var waveWait : float; // ######################### VARIABILI ASTEROIDI END #################################### function Start () { // Al'interno della funzione start richiamo la funzione per generare le ondate di asteroidi SpawnWaves (); } // FUNZIONE GENERAZIONE ONDATE ASTEROIDI START function SpawnWaves () { // imposto una breve pausa per dare il tempo al giocatore di concentrarsi prima di iniziare a giocare yield WaitForSeconds (startWait); // GENERAZIONE ONDATE INIZIO - while sempre vero, genera un ciclo infinito di asteroidi while (true) { // Genera la singola ondata di asteroidi, il numero di asteroidi che compone l'ondata è la variabile hazardCount for ( var i : int= 0; i < hazardCount; i++) { var spawnPosition : Vector3= new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), spawnValues.y, spawnValues.z); var spawnRotation : Quaternion= Quaternion.identity; Instantiate (hazard, spawnPosition, spawnRotation); // Tempo di attesa che trascorre tra la generazione di un asteroide e il successivo // per evitare che si scontrino tra loro yield WaitForSeconds (spawnWait); } yield WaitForSeconds (waveWait); } // GENERAZIONE ONDATE FINE - while sempre vero, genera un ciclo infinito di asteroidi } // FUNZIONE GENERAZIONE ONDATE ASTEROIDI END