Lavorare con gli strumenti 2D di Unity

In questo tutorial, ti mostrerò come sfruttare i nuovi strumenti 2D inclusi in Unity per creare un gioco 2D.

1. Panoramica dell'applicazione

In questo tutorial imparerai come creare un progetto Unity 2D e creare un gioco mobile usando C # e Unity.

L'obiettivo del gioco è sparare un raggio di teletrasporto alle mucche prima che possano raggiungere la sicurezza del fienile.

In questo progetto imparerai i seguenti aspetti dello sviluppo di Unity:

  • impostazione di un progetto 2D in Unity
  • familiarizzare con l'interfaccia Unity
  • creando un prefabbricato
  • allegare script agli oggetti di gioco
  • lavorando con collisioni fisiche
  • usando i timer

2. Crea un nuovo progetto unitario

Apri Unity e seleziona Nuovo progetto dal File menu per aprire la nuova finestra di dialogo del progetto. Seleziona una directory per il tuo progetto e impostaImpostare i valori predefiniti per in 2D.


3. Costruisci le impostazioni

Nel prossimo passaggio, ti verrà presentata l'interfaccia di Unity. Scegli il progetto per lo sviluppo mobile scegliendo Costruisci le impostazioni dal File menu e selezionando la tua piattaforma di scelta.

Unity può costruire per iOS, Android, BlackBerry e Windows Phone 8, il che è ottimo se si prevede di creare un gioco mobile per più piattaforme.


4. Dispositivi

Dato che stiamo per creare un gioco 2D, la prima cosa che dobbiamo fare dopo aver selezionato la piattaforma che stiamo prendendo di mira, è scegliere la dimensione del disegno che useremo nel gioco.

iOS:

  • iPad senza Retina: 1024 x 768 px
  • iPad con Retina: 2048px x 1536 px
  • 3.5 "iPhone / iPod Touch senza Retina: 320 px x 480 px
  • 3.5 "iPhone / iPod con Retina: 960 px x 640 px
  • 4 "iPhone / iPod Touch: 1136 px x 640 px

Poiché Android è una piattaforma aperta, ci sono molti dispositivi diversi, risoluzioni dello schermo e densità di pixel. Alcuni dei più comuni sono elencati di seguito.

  • Tablet Asus Nexus 7: 800 px x 1280 px, 216 ppi
  • Motorola Droid X: 854 x 480 px, 228 dpi
  • Samsung Galaxy SIII: 720px x 1280px, 306 ppi

E per Widows Phone e BlackBerry:

  • Blackberry Z10: 720px x 1280px, 355 ppi
  • Nokia Lumia 520: 400 px x 800 px, 233 dpi
  • Nokia Lumia 1520: 1080px x 1920px, 367 ppi

Anche se ci concentreremo sulla piattaforma iOS in questo tutorial, il codice può essere utilizzato per scegliere come target qualsiasi altra piattaforma.


5. Esporta grafica

A seconda del dispositivo che hai scelto come target, potrebbe essere necessario convertire il materiale illustrativo nella dimensione e densità di pixel consigliate. Puoi farlo nel tuo editor di immagini preferito. Ho usato il Regola dimensioni ... funzione sotto il Utensili menu in OS X Anteprima applicazione.


6. Interfaccia di unità

Assicurati di fare clic sul pulsante 2D nel Scena pannello. È inoltre possibile modificare la risoluzione che viene utilizzata per visualizzare la scena in Gioco pannello.


7. Interfaccia di gioco

L'interfaccia utente del nostro gioco sarà semplice. Puoi trovare le illustrazioni per questo tutorial nei file sorgente di questo tutorial.


8. Lingua

Puoi utilizzare una delle tre lingue in Unity, C #, UnityScript, una lingua simile a JavaScript in termini di sintassi e fischio. Ogni lingua ha i suoi pro e contro, ma sta a te decidere quale preferisci. La mia preferenza va alla sintassi C #, quindi questa è la lingua che userò in questo tutorial.

Se decidi di utilizzare un'altra lingua, assicurati di dare un'occhiata alla Guida di riferimento di Unity per gli esempi.


9. Grafica 2D

Unity ha costruito un nome per essere una grande piattaforma per la creazione di giochi 3D per varie piattaforme, come Microsoft Xbox 360, Sony PS3, Nintendo Wii, il Web e varie piattaforme mobili.

Anche se è sempre stato possibile utilizzare Unity per lo sviluppo di giochi 2D, non è stato fino al rilascio di Unity 4.3 che includeva il supporto 2D nativo. Impareremo come lavorare con le immagini come sprite anziché trame nei passaggi successivi.


10. Effetti sonori

Userò un numero di suoni per migliorare l'esperienza di gioco. Gli effetti sonori utilizzati in questo tutorial sono disponibili all'indirizzo Freesound.org.


11. Importazione di beni

Prima di iniziare la codifica, dobbiamo aggiungere le nostre risorse al progetto Unity. Ci sono diversi modi per farlo:

  • selezionare Importa nuova risorsa dal Risorse menu
  • aggiungi gli elementi alla cartella delle risorse nel tuo progetto
  • trascina e rilascia le risorse nella finestra del progetto

Dopo aver completato questo passaggio, dovresti vedere le risorse nel tuo progetto Risorse cartella nel Progetto pannello.

12. Crea scena

Siamo pronti a creare la scena del nostro gioco trascinando gli oggetti sul GerarchiaScena pannello.


13. Contesto

Inizia trascinando e rilasciando lo sfondo nel Gerarchia pannello. Dovrebbe quindi apparire nel Scena pannello.

Perché il Scena il pannello è impostato per visualizzare una vista 2D, noterai la selezione di Macchina fotografica principale nel Gerarchia mostra un'anteprima di ciò che la fotocamera sta per visualizzare. Puoi anche vederlo nella vista di gioco. Per rendere visibile l'intera scena, cambia il Taglia valore del Macchina fotografica principale a 1.6 nel Ispettore pannello.


14. Nave

La nave è anche un elemento statico con cui il giocatore non sarà in grado di interagire. Posizionalo al centro della scena.


15. Barn

Seleziona il granaio dal Risorse pannello e trascinalo sulla scena. Posizionalo come illustrato nello screenshot qui sotto.


16. Barn Collider

Per essere sicuro che la stalla venga notificata quando una mucca colpisce, entra nel granaio, dobbiamo aggiungere un componente, a Box Collider 2D per essere precisi.

Seleziona il fienile nella scena, apri il Ispettore pannello e fare clic Aggiungi componente. Dall'elenco dei componenti, selezionare Box Collider 2D dal Fisica 2D sezione. Assicurati di controllare il È Trigger scatola.

Vogliamo che la mucca reagisca quando colpisce la porta del granaio, quindi dobbiamo rendere il collisore un po 'più piccolo. Apri il Ispettore e cambia il Taglia e Centro valori del collisore per spostare la scatola più vicino alla porta del granaio.


17. Script di collisione dei granai

È tempo di scrivere del codice. Abbiamo bisogno di aggiungere uno script in modo che l'applicazione possa rispondere alla collisione quando una mucca entra nel granaio.

Seleziona il granaio e clicca il Aggiungi componente pulsante nel Ispettore pannello. Selezionare Nuovo script e nominalo OnCollision. Ricordarsi di cambiare la lingua in C #.

Apri il file appena creato e aggiungi il seguente snippet di codice.

usando UnityEngine; usando System.Collections; public class OnCollision: MonoBehaviour void OnTriggerEnter2D (Collider2D other) if (other.gameObject.name == "cow (Clone)") / * Riproduce il suono save cow * / audio.Play (); / * Distruggi la mucca * / Distruggi (other.gameObject); 

Lo snippet verifica la collisione tra l'oggetto a cui è collegato lo script, la stalla e un oggetto denominato mucca (clone), quale sarà un'istanza della mucca Prefab che creeremo in seguito. Quando si verifica una collisione, viene riprodotto un suono e l'oggetto mucca viene distrutto.


18. Granaio

Per riprodurre un suono quando una mucca colpisce il fienile, dobbiamo prima collegare il suono al granaio. Selezionalo dal Gerarchia o Scena visualizzare, fare clic su Aggiungi componente pulsante nel Ispettore pannello e selezionare Sorgente Audio dal Audio sezione.

Deseleziona Gioca su Awake e fai clic sul piccolo punto a destra, sotto l'icona a forma di ingranaggio, per selezionare il suono della stalla.

Facendo clic su puoi aumentare la dimensione delle icone nell'interfaccia utente di Unity (gizmos) aggeggi nel Scena pannello e regolando la posizione del cursore.


19. Ray

Trascina la grafica del raggio dal Risorse pannello alla scena e aggiungere un collisore ad esso. Questo è necessario per rilevare una collisione con la vacca sfortunata. Controlla ilÈ Trigger opzione nel Ispettore pannello.

20. Ray Script

Crea un nuovo script ripetendo i passaggi che ho delineato qualche momento fa. Dai un nome allo script proiettilee sostituire i suoi contenuti con il seguente frammento di codice:

usando UnityEngine; usando System.Collections; Bullet class public: MonoBehaviour public AudioClip cowSound; // Usa questo per l'inizializzazione void Start () renderer.enabled = false; / * Rende invisibile l'oggetto * / // L'aggiornamento viene chiamato una volta per frame void Update () / * Ottieni l'input principale * / if (Input.GetButton ("Fire1")) renderer.enabled = true; / * Rende visibile l'oggetto * / / * Riproduce il suono del raggio * / audio.Play ();  if (renderer.enabled == true) transform.position + = Vector3.down * (Time.deltaTime * 2);  / * Cerca fuori dai limiti * / if (this.transform.position.y < -1.5)  transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false;   void OnTriggerEnter2D(Collider2D other)  if (other.gameObject.name == "cow(Clone)")  AudioSource.PlayClipAtPoint(cowSound, transform.position); /* Destroy the cow */ Destroy(other.gameObject); transform.position = new Vector2(0.08658695f, 0.1924166f); /* Return bullet to original position */ renderer.enabled = false;   

Questo è un sacco di codice, ma non è complicato. Vediamo cosa sta succedendo. In primo luogo, creiamo un AudioClip istanza chiamata cowSound, che useremo per memorizzare un file audio. Questa è solo un'altra tecnica per riprodurre un suono se non si desidera aggiungere due componenti audio all'oggetto. Dichiariamo la variabile come pubblica in modo che possiamo accedervi dal Ispettore. Fai clic sul piccolo punto a destra di cowSound e seleziona il file audio.

Quindi rendiamo invisibile il raggio disabilitando il suo renderer. Usiamo lo stesso oggetto per risparmiare risorse, che è un'importante ottimizzazione per i dispositivi meno potenti.

Rileviamo i tocchi sullo schermo, che rendono il raggio visibile e riproducono il suono del raggio (vedi sotto). Se l'oggetto è visibile, significa che dovrebbe andare giù per colpire una mucca.

C'è anche un codice per rilevare se il raggio è fuori dai limiti della scena. Se questo è il caso, lo riposizioniamo, pronti a sparare di nuovo (controlla i raggi X e y valori nel Ispettore).

L'ultima parte controlla se il raggio colpisce una mucca. Se lo fa, suona il suono della mucca e distrugge la mucca. Il raggio viene quindi reso invisibile e riposizionato nella sua posizione originale, pronto a sparare di nuovo.


21. Sorgente audio Ray

Per aggiungere l'audio per il raggio, selezionalo nel Gerarchia o Scena guarda e clicca Aggiungi componente nel Ispettore pannello. Selezionare Sorgente Audio dal Audio sezione. Deseleziona Gioca su Awake e fai clic sul piccolo punto a destra per selezionare il file audio.


22. Aggiungi una mucca

Trascina il grafico per la mucca dal Risorse pannello e posizionarlo nella scena come mostrato di seguito.


23. Corpo rigido 2D

Per rilevare una collisione, almeno uno degli oggetti in collisione deve avere a RigidBody2D componente ad esso associato. Dato che la mucca può entrare in collisione sia con il fienile che con il raggio, è meglio aggiungere il componente alla mucca.


24. Cow Collider

Abbiamo anche bisogno di aggiungere un collisore alla mucca in modo da poter rilevare le collisioni con il fienile e il raggio. Assicurati di controllare il È Trigger casella di controllo in Ispettore.


25. Sposta Script Mucca

Aggiungi un componente di script alla mucca e sostituisci il suo contenuto con quanto segue:

usando UnityEngine; usando System.Collections; public class MoveCow: MonoBehaviour public Vector3 moveSpeed; public float spawnTime = 2f; float pubblico spawnDelay = 2f; // Usa questo per l'inizializzazione void Start () moveSpeed ​​= Vector3.left * Time.deltaTime; InvokeRepeating ("ChangeSpeed", spawnDelay, spawnTime);  void ChangeSpeed ​​() moveSpeed ​​= new Vector3 (Random.Range (-1, -2), 0, 0) * 0.05f;  // L'aggiornamento viene chiamato una volta per frame void Update () transform.position + = moveSpeed; 

Il MoveCow la classe anima la mucca attraverso lo schermo usando una variabile chiamata velocità di movimento. Il InvokeRepeating metodo cambia la velocità della mucca per farlo sprint dal momento in cui raggiunge il centro della scena. Questo rende il gioco più impegnativo.


26. Crea prefabbricati di mucca

Con i componenti necessari aggiunti alla mucca, è il momento di convertirlo in a Prefab. Cos'è un prefabbricato? Consultiamo il Manuale di unità:

"Un prefabbricato è un tipo di risorsa, un GameObject riutilizzabile memorizzato in Project View.I prefabbricati possono essere inseriti in un numero qualsiasi di scene, più volte per scena.Quando aggiungi un prefabbricato a una scena, ne crei un'istanza. le istanze sono collegate al Prefab originale e sono essenzialmente cloni di esso. Indipendentemente dal numero di istanze presenti nel progetto, quando si apportano modifiche al Prefab si vedrà la modifica applicata a tutte le istanze. "

Se provieni da Flash e ActionScript, questo dovrebbe sembrare familiare. Per convertire la mucca in un prefabbricato, trascina la mucca dal Gerarchia pannello al Risorse pannello. Di conseguenza, il nome nel Gerarchia diventerà blu.

Convertire la mucca in un prefabbricato ci permette di riutilizzarlo, il che è conveniente in quanto contiene già i componenti necessari.


27. Script Spawner

Lo script Spawner è responsabile della visualizzazione delle mucche. Apri MonoDevelop o il tuo editor C # preferito e crea un nuovo script:

usando UnityEngine; usando System.Collections; Spawner di classe pubblica: MonoBehaviour public float spawnTime = 2f; float pubblico spawnDelay = 2f; public GameObject cow; // Usa questo per l'inizializzazione void Start () InvokeRepeating ("Spawn", spawnDelay, spawnTime);  void Spawn () / * Instantiate a cow * / GameObject clone = Instantiate (cow, transform.position, transform.rotation) come GameObject; 

Chiamiamo il InvokeRepeating metodo per generare le vacche usando i valori impostati da spawnTime e spawnDelay. Il GameObject mucca è impostato su pubblico e viene creato utilizzando il Ispettore. Fare clic sul piccolo punto a destra e selezionare la prefabbricata della mucca.


28. Oggetto di gioco Spawner

Per istanziare il prefabbricato della mucca, useremo la grafica della mucca che abbiamo aggiunto alla scena pochi minuti fa. Selezionalo e rimuovi i suoi componenti. Quindi aggiungi lo script Spawner.


29. Test

È tempo di testare il gioco. stampa Comando + P per giocare a Unity. Se tutto funziona come previsto, sei pronto per i passaggi finali.


30. Impostazioni del lettore

Quando sei soddisfatto del tuo gioco, è il momento di selezionare Costruisci le impostazioni dal File menu e fare clic su Impostazioni del giocatore pulsante. Questo fa apparire il Impostazioni del giocatore nel Ispettore pannello in cui è possibile regolare i parametri per la propria applicazione.


31. Icona dell'applicazione

Usando la grafica creata in precedenza, ora puoi creare una bella icona per il tuo gioco. Unity ti mostra le dimensioni richieste, che dipendono dalla piattaforma che stai creando.


32. Immagine Splash

L'immagine iniziale o di avvio viene visualizzata all'avvio dell'applicazione.

33. Build

Una volta che il tuo progetto è configurato correttamente, è il momento di rivisitare il Costruisci le impostazioni e fare clic su Costruire Pulsante. Questo è tutto ciò che serve per costruire il tuo gioco per test e / o distribuzione.

34. Xcode

Se stai costruendo per iOS, hai bisogno di Xcode per creare l'ultimo binario dell'applicazione. Apri il progetto Xcode e scegli Costruire dal Prodotto menu.

Conclusione

In questo tutorial, abbiamo imparato a conoscere le nuove funzionalità 2D di Unity, il rilevamento delle collisioni e altri aspetti dello sviluppo del gioco con Unity.

Sperimenta il risultato e personalizzalo per rendere il gioco il tuo. Spero che questo tutorial ti sia piaciuto e l'ho trovato utile.