Crea un gioco platform 2D con Unity e l'API Dolby Audio

Cosa starai creando

introduzione

In questo tutorial imparerai come creare un gioco 2D mobile usando C # e Unity. Sfrutteremo il plug-in Dolby Audio per Unity per migliorare l'esperienza auditiva del gioco. L'obiettivo del gioco è semplice, raggiungere l'altro lato del livello evitando i nemici e raccogliendo monete.

In questo tutorial, imparerai i seguenti aspetti dello sviluppo del gioco Unity:

  • impostazione di un progetto 2D in Unity
  • creando prefabbricati
  • pulsanti di movimento e azione
  • lavorando con collisioni fisiche
  • usando un foglio sprite
  • integrazione dell'API Dolby Audio

1. Creare un nuovo progetto unitario

Apri Unity e seleziona Nuovo progetto dal File menu per aprire la nuova finestra di dialogo del progetto. Dillo a Unity dove vuoi salvare il progetto e impostare ilImpostare i valori predefiniti per: menu a discesa a 2D.

 

2. Impostazioni di compilazione

Nel prossimo passaggio, ti verrà presentata l'interfaccia utente di Unity. Scegli il progetto per lo sviluppo mobile scegliendo Costruisci le impostazioni dal File menu e selezionare androide come piattaforma di destinazione.


3. Dispositivi

Dato che stiamo per creare un gioco 2D, la prima cosa che dobbiamo fare dopo aver selezionato la piattaforma di destinazione è scegliere la dimensione del disegno che useremo nel gioco. Poiché Android è una piattaforma aperta, esiste una vasta gamma di dispositivi, risoluzioni dello schermo e densità di pixel disponibili sul mercato attuale. Alcuni dei più comuni sono:

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

Anche se ci concentreremo sulla piattaforma Android in questo tutorial, puoi utilizzare lo stesso codice per scegliere come target qualsiasi altra piattaforma supportata da Unity.


4. Esporta grafica

A seconda dei dispositivi che hai scelto come targeting, potrebbe essere necessario convertire l'artwork del gioco nelle dimensioni 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.


5. Unity User Interface

Prima di iniziare, assicurati di fare clic su 2D pulsante nel Scena pannello. È anche possibile modificare la risoluzione che viene visualizzata nel Gioco pannello.


6. Interfaccia di gioco

L'interfaccia del nostro gioco sarà semplice. Lo screenshot qui sopra ti dà un'idea dell'opera d'arte che useremo e di come l'interfaccia di gioco finale finirà per apparire. Puoi trovare le illustrazioni per questo tutorial nei file sorgente di questo tutorial.


7. Linguaggio di programmazione

Puoi utilizzare uno dei tre linguaggi di programmazione quando usi Unity, C #, UnityScript, una variante di JavaScript e Boo. Ognuno di questi linguaggi di programmazione ha i suoi pro e contro e spetta a te decidere quale preferisci. La mia preferenza personale va al linguaggio di programmazione C #, quindi questa è la lingua che userò in questo tutorial.

Se decidi di utilizzare un altro linguaggio di programmazione, assicurati di dare un'occhiata al Riferimento degli script di Unity per degli esempi.


8. Grafica 2D

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

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


9. Effetti sonori

Userò un numero di suoni per creare una grande esperienza auditiva per il gioco. Gli effetti sonori utilizzati in questo tutorial sono stati ottenuti da as3sfxr e PlayOnLoop.


10. Importare attività

Prima di iniziare la codifica, dobbiamo aggiungere le nostre risorse al progetto Unity. Puoi farlo in diversi modi:

  • 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.

11. Crea scena

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


12. Contesto

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

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


13. Piano

Il pavimento è usato per mantenere il nostro personaggio principale da cadere una volta che abbiamo aggiunto la fisica al gioco. Trascinalo dal Risorse cartella e posizionarlo nella scena come mostrato di seguito.


14. Floor Collider

Per fare in modo che il pavimento rilevi quando il personaggio lo sta toccando, dobbiamo aggiungere un componente, a Box Collider 2D per essere precisi.

Seleziona il piano nella scena, apri il Ispettore pannello e fare clic Aggiungi componente. Dall'elenco dei componenti, selezionare Box Collider 2D dal Fisica 2D sezione.

15. Pulsante di salto

Useremo i pulsanti per controllare il nostro personaggio principale nel gioco. Trascina e posiziona il pulsante di salto in Scena e aggiungere un Circle Collider2D componente come mostrato nel passaggio precedente.


16. Salta suono

Per riprodurre un suono quando il personaggio salta, dobbiamo prima collegarlo al pulsante di salto. Selezionalo dal Gerarchia o Scena visualizzare, fare clic su Aggiungi componente pulsante nel Ispettore pannello e selezionare Sorgente Audio nel 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 che vogliamo riprodurre quando il giocatore tocca il pulsante. Nel passaggio successivo, implementeremo la logica per riprodurre il suono quando il giocatore tocca il pulsante.


17. Jump Script

Creiamo la sceneggiatura che controllerà il nostro personaggio. Seleziona il pulsante di salto e fai clic su Aggiungi componente pulsante nel Ispettore pannello. Selezionare Nuovo script e nominalo Saltare. Non dimenticare di cambiare la lingua in C #.

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

usando UnityEngine; usando System.Collections; classe pubblica Jump: MonoBehaviour public float jumpForce; eroe privato GameObject; // usato per riferirsi al nostro personaggio (eroe) sulla scena // Usa questo per l'inizializzazione void Start () hero = GameObject.Find ("Hero"); // ottiene l'oggetto di gioco dell'eroe // L'aggiornamento viene chiamato una volta per frame void Update () / * Controllare se l'utente sta toccando il pulsante sul dispositivo * / if (Application.platform == RuntimePlatform.Android) if ( Input.touchCount> 0) if (Input.GetTouch (0) .phase == TouchPhase.Began) CheckTouch (Input.GetTouch (0) .position, "started"); // funzione creata sotto else if (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  / * Controlla se l'utente sta toccando il pulsante sull'Editor, cambia il valore di OSXEditor se sei su Windows * / if (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "started");  if (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "ended");  CheckTouch void (posizione Vector3, fase stringa) / * Ottieni il punto dello schermo dove l'utente sta toccando * / Vector3 wp = Camera.main.ScreenToWorldPoint (pos); Vector2 touchPos = new Vector2 (wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint (touchPos); / * se si tocca il pulsante ... * / if (hit.gameObject.name == "JumpButton" && hit && phase == "begin") hero.rigidbody2D.AddForce (new Vector2 (0f, jumpForce)); // Aggiungi forza di salto a hero audio.Play (); // riproduce l'audio collegato a questo oggetto di gioco (suono di salto)

Lo snippet di codice può sembrare scoraggiante, ma in realtà è piuttosto semplice. Prima otteniamo un riferimento al eroe oggetto, un'istanza del GameObject classe, quindi possiamo usarlo più tardi. Rileviamo quindi se l'utente sta toccando il pulsante di salto e, se lo sono, aggiungere una forza al eroe oggetto. Ultimo ma non meno importante, suoniamo il suono del salto quando si tocca il pulsante di salto.

18. Pulsanti di movimento

I passaggi per aggiungere e implementare i pulsanti di spostamento, sinistra e destra, sono molto simili. Inizia posizionando i pulsanti nella scena e aggiungi un Circle Collider 2D ad ogni pulsante come abbiamo fatto con il pulsante di salto.



19. Script di movimento

Crea un nuovo script, collegalo al pulsante sinistro e nominalo Muovere a sinistra. Sostituisci il suo contenuto con il seguente frammento di codice, che contiene il Muovere a sinistra metodo.

usando UnityEngine; usando System.Collections; public class MoveLeft: MonoBehaviour public Vector3 moveSpeed ​​= new Vector3 (); private bool moving = false; scena privata GameObject []; // array di oggetti di gioco che conformano la scena GameObject privato bg; // Usa questo per l'inizializzazione void Start () scene = GameObject.FindGameObjectsWithTag ("Moveable"); // Oggetti di gioco con tag Moveable bg = GameObject.Find ("Background"); // Sfondo di gioco // L'aggiornamento viene chiamato una volta per frame void Update () / * Detect touch * / if (Application.platform == RuntimePlatform.Android) if (Input.touchCount> 0) if (Input.GetTouch (0) .phase == TouchPhase.Began) CheckTouch (Input.GetTouch (0) .position, "started");  else if (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  if (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "started");  if (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "ended");  // Sposta se viene premuto il pulsante if (moving && bg.transform.position.x < 4.82f)  for (int i = 0; i < scene.Length; i++)  if (scene [i] != null)  scene [i].transform.position += moveSpeed;     void CheckTouch(Vector3 pos, string phase)  Vector3 wp = Camera.main.ScreenToWorldPoint(pos); Vector2 touchPos = new Vector2(wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint(touchPos); if (hit.gameObject.name == "LeftButton" && hit && phase == "began")  moving = true;  if (hit.gameObject.name == "LeftButton" && hit && phase == "ended")  moving = false;   

In questo script, creiamo una matrice di elementi contrassegnati come Moveable-li etichettiamo più avanti in questo tutorial per rendere più facile spostarli tutti in una volta. Per spostare gli elementi, per prima cosa controlliamo se il pulsante viene toccato e cambia la posizione usando velocità di movimento nel Aggiornare funzione. E 'così semplice.

Crea un altro script, collegalo al pulsante destro e nominalo Vai a destra. Questo script contiene il Vai a destra metodo e la sua implementazione è simile a quella del Muovere a sinistra metodo che abbiamo visto un momento fa. Sostituiamo la direzione del movimento += moveSpeed con -= moveSpeed. Questo sposterà la scena nella direzione opposta.

Nel Vai a destra script, controlliamo anche se il giocatore ha completato il livello.

usando UnityEngine; usando System.Collections; public class MoveRight: MonoBehaviour public Vector3 moveSpeed ​​= new Vector3 (); private bool moving = false; scena privata GameObject []; GameObject privato bg; audio AudioClip completeSound; pulsanti privati ​​GameObject []; GameObject privato completeText; bool privato finito = falso; carattere pubblico good dog; // Usa questo per l'inizializzazione void Start () scene = GameObject.FindGameObjectsWithTag ("Moveable"); bg = GameObject.Find ("Sfondo"); buttons = GameObject.FindGameObjectsWithTag ("Pulsanti");  // L'aggiornamento viene chiamato una volta per frame void Update () if (Application.platform == RuntimePlatform.Android) if (Input.touchCount> 0) if (Input.GetTouch (0) .phase == TouchPhase.Began ) CheckTouch (Input.GetTouch (0) .position, "started");  else if (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  if (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "started");  if (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "ended");  // Sposta se il pulsante è premuto && lo stage non è finito se (moving && bg.transform.position.x> -4.8f) for (int i = 0; i < scene.Length; i++)  if (scene [i] != null)  scene [i].transform.position -= moveSpeed;    // Stage Completed if (bg.transform.position.x <= -4.8f && ended == false)  Alert("complete");   void CheckTouch(Vector3 pos, string phase)  Vector3 wp = Camera.main.ScreenToWorldPoint(pos); Vector2 touchPos = new Vector2(wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint(touchPos); if (hit.gameObject.name == "RightButton" && hit && phase == "began")  moving = true;  if (hit.gameObject.name == "RightButton" && hit && phase == "ended")  moving = false;   public void Alert(string action)  ended = true; completeText = new GameObject(); completeText.AddComponent("GUIText"); completeText.guiText.font = goodDog; completeText.guiText.fontSize = 50; completeText.guiText.color = new Color(255, 0, 0); if (action == "complete")  AudioSource.PlayClipAtPoint(completeSound, transform.position); completeText.guiText.text = "Level Complete!"; completeText.guiText.transform.position = new Vector3(0.24f, 0.88f, 0);  else  completeText.guiText.text = "Game Over"; completeText.guiText.transform.position = new Vector3(0.36f, 0.88f, 0);  bg.GetComponent().Stop(); for(int i = 0; i < buttons.Length; i++)  buttons[i].renderer.enabled = false; Invoke("restart", 2);   void restart()  Application.LoadLevel(Application.loadedLevel);  

Il Mettere in guardia  la funzione crea e visualizza un messaggio al lettore e riproduce il suono collegato allo sprite di sfondo. Per fare in modo che funzioni, aggiungi il suono corrispondente allo sprite di sfondo come abbiamo visto in precedenza in questo tutorial. Nascondiamo anche i pulsanti e riavviamo il gioco con un ritardo di due secondi.

20. Foglio sprite

Useremo un foglio sprite per il resto degli elementi del gioco. Unity ha un editor di sprite che rende l'uso degli sprite un gioco da ragazzi. L'artwork utilizzato in questo tutorial è stato ottenuto da OpenGameArt.org.

Importa il disegno, selezionalo dal Risorse pannello, e cambia il Modalità Sprite opzione a multiplo nel Ispettore pannello.

Apri il Sprite Editor facendo clic sul pulsante in basso e selezionare Slice> Automatico.


21. Eroe

Con il foglio sprite affettato e pronto per l'uso, fai clic sulla freccia che appare quando il foglio sprite è selezionato e scegli lo sprite per l'eroe, il personaggio principale del nostro gioco. Mettilo sulla scena e aggiungi un Collider 2D componente ad esso.


22. Hero RigidBody 2D

Per rilevare una collisione con il nostro eroe, almeno uno degli oggetti in collisione deve avere un RigidBody 2D componente collegato ad esso. Per aggiungerne uno al nostro eroe, seleziona Aggiungi componente nel Ispettore pannello, seguito da Fisica 2D > RigidBody 2D.

Controlla il Angolo fisso casella per impedire all'eroe di ruotare se si verifica una collisione.

23. Suono eroe

Quando il nostro eroe viene colpito da un nemico, suoniamo un altro suono per dare il feedback al giocatore. Se hai mai giocato a Super Mario Bros., probabilmente sai qual è l'effetto che cerchiamo. Per fare ciò, dobbiamo prima aggiungere il suono. Selezionalo dal Gerarchia o Scena visualizzare, fare clic su Aggiungi componente pulsante nel Ispettore pannello e selezionare Sorgente Audio nel Audio sezione.

I dettagli del componente audio verranno visualizzati nel Pannello Ispettore. Fai clic sul punto sotto l'icona a forma di ingranaggio e seleziona colpire suono.

24. Collezionare monete

Come in molti tradizionali platform 2D, puoi collezionare monete nel nostro gioco. Poiché utilizzeremo questo oggetto più volte nel gioco, lo convertiremo in a Prefab una volta aggiunti tutti i componenti necessari.

Trascina la moneta dal Risorse cartella e aggiungi a Collider2D come abbiamo visto nei passaggi precedenti.


25. Suono della moneta

Suoniamo un suono ogni volta che il nostro eroe colleziona una moneta. Aggiungi un Sorgente Audio componente come abbiamo visto un attimo fa e selezionare il moneta suono dalle risorse del progetto.



26. Script di monete e prefabbricati

Allega questo semplice copione alla moneta. Rileva quando la moneta e l'eroe si scontrano. La moneta viene distrutta e viene riprodotto un suono per indicare che la moneta è stata raccolta dall'eroe.

usando UnityEngine; usando System.Collections; public class GrabCoin: MonoBehaviour void OnTriggerEnter2D (Collider2D other) if (other.gameObject.name == "Hero") audio.Play (); Destroy (gameObject.collider2D); gameObject.renderer.enabled = false; Destroy (gameObject, 0.47f); // Destroy the object -after- il suono riprodotto

Con tutti i componenti in posizione, trascina la moneta dal Gerarchia pannello al Risorse pannello per convertirlo in a Prefab. Noterai che il testo diventa blu indicando che ora è un prefabbricato.


27. Nemico

Non dimentichiamo i nemici del gioco. Trascina l'opera d'arte per il nemico dal Risorse cartella e aggiungere due Collider 2D componenti come mostrato nello screenshot qui sotto.


I collisori sono di dimensioni ridotte per impedire all'eroe di scontrarsi con entrambi i collisori contemporaneamente. Cambia le impostazioni di ciascuno Collider 2D componente come sotto.

Il primo collisore nel pannello è il collisore più in alto che abbiamo aggiunto al nemico. Rileverà se l'eroe salta sopra il nemico e lo distrugge. La logica per questa azione è mostrata nello script seguente.

Contrassegniamo il secondo collider come trigger selezionando la casella contrassegnata È Trigger. Rileva quando il nemico si imbatte nell'eroe o viceversa. Quando ciò accade, il giocatore perde la partita.


La sceneggiatura allegata al nemico è mostrata sotto e implementa la logica che abbiamo appena discusso. Come puoi vedere, il nemico viene spostato a sinistra in ogni fotogramma e lo script rileva quando l'eroe salta sopra il nemico o quando l'eroe incontra il nemico.

usando UnityEngine; usando System.Collections; public class Enemy: MonoBehaviour public Vector3 moveSpeed; pubblico AudioClip hitSound; public GameObject alertBridge; // Usa questo per l'inizializzazione void Start ()  // L'aggiornamento viene chiamato una volta per frame void Update () transform.position - = moveSpeed; // Sposta il nemico a sinistra void OnCollisionEnter2D (Collision2D altro) // Hero salta sul nemico if (other.gameObject.name == "Hero") AudioSource.PlayClipAtPoint (hitSound, transform.position); Destroy (gameObject);  void OnTriggerEnter2D (Collider2D altro) // hero colpisce il lato del nemico if (other.gameObject.name == "Hero") other.gameObject.audio.Play (); // Riproduci audio Destroy (other.gameObject.collider2D); // Rimuovi il collisore per evitare riproduzioni audio other.gameObject.renderer.enabled = false; // Rendi invisibile l'oggetto Destroy (other.gameObject, 0.626f); // Distruggi oggetto quando l'audio è terminato, distruggendolo prima farà sì che l'audio interrompa alertBridge.GetComponent (). Alert ("gameover"); 

28. Mattoni

I mattoni sono usati come piattaforme. L'eroe può saltare sui mattoni per evitare nemici e raccogliere monete. Trascina il disegno del mattone dal Risorse pannello e aggiungi a Collider 2D componente ad esso. Non dimenticare di convertirlo in a Prefab, perché sarà usato un bel po 'nel gioco.


29. La fine

Useremo uno sprite per mostrare il traguardo del livello. Trascinalo dal Risorse pannello al Scena come mostrato nello screenshot qui sotto.

30. Dolby Audio Plugin


Miglioriamo l'esperienza auditiva del nostro gioco utilizzando il plug-in Dolby Audio per Unity. Tuttavia, vorrei prima spiegare perché dovresti usare il Dolby Audio Plugin e come migliorerà il tuo gioco.

Dolby Digital Plus è una soluzione audio avanzata integrata in molti dispositivi mobili, compresi i tablet. Le applicazioni mobili possono sfruttare le funzionalità Dolby Digital Plus tramite API. Alcuni dei vantaggi includono Ottimizzazione audio, Massimizzazione del volume e Livellamento del volume. Dolby ha reso disponibile la sua API per diverse piattaforme, tra cui Android e Kindle Fire. Nel nostro gioco, utilizzeremo il plug-in Dolby Audio per Unity.

Nota che il plugin per Unity è gratuito e molto facile da integrare. In altre parole, non c'è motivo di non includerlo nel tuo prossimo gioco.

Inizia scaricando il plug-in Unity di Dolby. Puoi scaricarlo da Unity Asset Store o direttamente dal sito Web degli sviluppatori di Dolby. Se scegli la seconda opzione, crea un account gratuito per scaricare il plug-in o accedi se hai già un account sviluppatore Dolby. Estrai il pacchetto e copia la versione di cui hai bisogno Risorse> Plugin> Android. Ecco come è facile installare il plugin per Unity.

Crea un nuovo script e collegalo a un oggetto sempre presente nel gioco come lo sfondo o la fotocamera. Dai un nome allo script Dolby e compilalo con il seguente frammento di codice.

usando UnityEngine; usando System.Collections; utilizzando System.Runtime.InteropServices; // Ci permette di usare DLLImport public class Dolby: MonoBehaviour private GameObject debugText; carattere pubblico arial; / * Funzioni del plugin di importazione * / [DllImport ("DSPlugin")] public extern bool pubblico isAvailable (); [DllImport ("DSPlugin")] public static extern int initialize (); [DllImport ("DSPlugin")] public static extern int setProfile (int profileid); [DllImport ("DSPlugin")] public static extern int suspendSession (); [DllImport ("DSPlugin")] public static extern int restartSession (); [DllImport ("DSPlugin")] public static extern void release (); // Usa questo per l'inizializzazione void Start () / * Campo di testo creato per feedback * / debugText = new GameObject (); debugText.AddComponent ( "GUIText"); debugText.guiText.font = arial; debugText.guiText.fontSize = 14; debugText.guiText.color = new Color (255, 0, 0); debugText.transform.position = new Vector3 (0, 1, 0); / * Inizializza Dolby se Disponibile * / if (isAvailable ()) Invoke (Init, 0.1f); // Attendi 100 ms per accertarsi che il servizio Dolby sia abilitato else debugText.guiText.text = "Dolby Sound Not Available";  void Init () debugText.guiText.text = "Dolby Sound Available"; setprofile (2); / * Imposta profilo su "Gioco" * / initialize ();  void OnApplicationPause () suspendSession (); // L'audio Dolby si interrompe se l'app viene commutata o messa in pausa void OnApplicationFocus () restartSession (); // Riavvia audio Dolby se l'app è attiva void OnApplicationQuit () release (); // Interrompe completamente il Dolby Sound 

Sono sicuro che sei d'accordo che è molto semplice integrare l'API Dolby Audio nel tuo gioco. Per prima cosa creiamo un debugText oggetto, che è di tipo GameObject, per ricevere feedback dal dispositivo. Quindi importiamo le funzioni necessarie definite dall'API Dolby Audio e inizializziamo l'API Dolby Audio se il dispositivo dell'utente lo supporta.

Per garantire che il servizio Dolby sia abilitato, attendere brevemente (0.1 secondi) prima di chiamare il inizializzare() metodo. Se non lo facciamo, c'è una possibilità che tu riceva a -1 errore, che può verificarsi quando si tenta di impostare Dolby su quando il servizio viene stabilito.

Dolby ha anche incluso funzioni per sospendere e riavviare il suono quando necessario, il che è utile quando passiamo a un'altra applicazione e non abbiamo bisogno dell'aumento del suono. Questo è importante per conservare la carica della batteria e altre risorse del dispositivo. Possiamo anche fermare completamente l'amplificazione del suono invocando pubblicazione come facciamo noi OnApplicationQuit.


31. Test

È tempo di testare il gioco. Premi Comando-P per giocare in Unity. Se tutto funziona come previsto, sei pronto per i passaggi finali.


32. 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 dovrebbe far apparire il Impostazioni del giocatore nel Ispettore pannello in cui è possibile impostare i parametri per la propria applicazione.

Queste impostazioni sono specifiche dell'applicazione e includono il creatore o la società, la risoluzione dell'applicazione, la modalità di visualizzazione, ecc. Queste impostazioni dipendono dai dispositivi a cui ti rivolgi e dai negozi o mercati sui quali pubblicherai il gioco.


33. Icone e immagini Splash

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

34. Costruisci e gioca


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.

Conclusione

In questo tutorial, abbiamo imparato a conoscere il nuovo plug-in Dolby Audio per Unity, i fogli sprite, i controlli, il rilevamento delle collisioni e altri aspetti dello sviluppo del gioco utilizzando Unity. Ti incoraggio a sperimentare il risultato e personalizzare il gioco per renderlo tuo. Spero che questo tutorial ti sia piaciuto e l'ho trovato utile.