Creați un joc Platformă 2D cu unitate și Dolby Audio API

Ce veți crea

Introducere

În acest tutorial, veți învăța cum să creați un joc mobil 2D folosind C # și Unity. Vom profita de plug-in-ul Dolby Audio pentru Unity pentru a îmbunătăți experiența audio a jocului. Obiectivul jocului este simplu, ajungând la cealaltă parte a nivelului evitând în același timp dușmanii și colectând monede.

În acest tutorial, veți învăța următoarele aspecte ale dezvoltării jocului Unity:

  • crearea unui proiect 2D în Unity
  • crearea Prefabs
  • butoanele de mișcare și de acțiune
  • lucrul cu coliziuni fizice
  • folosind o foaie de sprite
  • integrarea API-ului Dolby Audio

1. Creați un proiect de unitate nouă

Deschideți Unitatea și selectați Proiect nou de la Fişier meniu pentru a deschide dialogul de proiect nou. Spuneți unității unde doriți să salvați proiectul și setațiConfigurați valorile prestabilite pentru: drop-down meniu la 2D.

 

2. Construiți setările

În pasul următor, vă prezentați interfața de utilizator a Unity. Setați proiectul pentru dezvoltarea mobilă, alegând Construiți setările de la Fişier meniu și selectați Android ca platformă țintă.


3. Dispozitive

Deoarece suntem pe punctul de a crea un joc 2D, primul lucru pe care trebuie să-l facem după selectarea platformei țintă este alegerea dimensiunii operei de artă pe care o vom folosi în joc. Deoarece Android este o platformă deschisă, există o gamă largă de dispozitive, rezoluții ale ecranului și densități de pixeli disponibile pe piața actuală. Câteva dintre cele mai comune sunt:

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

Chiar dacă ne vom concentra pe platforma Android în acest tutorial, puteți folosi același cod pentru a viza oricare dintre celelalte platforme suportate de Unity.


4. Export Graphics

În funcție de dispozitivele pe care le vizați, este posibil să fie necesar să transformați operele de artă pentru joc la dimensiunea și densitatea pixelilor recomandate. Puteți face acest lucru în editorul dvs. de imagine preferat. Am folosit-o Reglați dimensiunea ... funcția în cadrul Unelte în meniul OS X previzualizare cerere.


5. Interfață utilizator unitate

Înainte de a începe, asigurați-vă că faceți clic pe 2D buton în Scenă panou. De asemenea, puteți modifica rezoluția care este afișată în Joc panou.


6. Interfața jocurilor

Interfața jocului nostru va fi simplă. Imaginea de mai sus vă oferă o idee despre opera de artă pe care o vom folosi și despre cum va fi finalizată interfața finală a jocului. Puteți găsi operele de artă pentru acest tutorial în fișierele sursă ale acestui tutorial.


7. Limba de programare

Puteți utiliza una dintre cele trei limbi de programare atunci când folosiți Unity, C #, UnityScript, o variantă de JavaScript și Boo. Fiecare dintre aceste limbi de programare are argumentele sale pro și contra și depinde de tine să decideți care dintre ele preferați. Preferința mea personală este limba limbajului de programare C #, deci este limba pe care o folosesc în acest tutorial.

Dacă decideți să utilizați un alt limbaj de programare, asigurați-vă că ați aruncat o privire asupra exemplei Unity's Script Reference.


8. Grafică 2D

Unity a construit un nume pentru a fi o platformă excelentă pentru crearea de jocuri 3D pentru diverse platforme, cum ar fi Xbox 360, Sony PS3, Nintendo Wii, web și diverse platforme mobile.

Deși a fost întotdeauna posibilă utilizarea unității pentru dezvoltarea jocurilor 2D, nu a fost decât lansarea Unității 4.3 că a inclus suport nativ 2D. Vom învăța cum să lucrăm cu imagini ca sprite în loc de texturi în pașii următori.


9. Efecte de sunet

Voi folosi o serie de sunete pentru a crea o experiență audio excelentă pentru joc. Efectele sonore utilizate în acest tutorial au fost obținute de la as3sfxr și PlayOnLoop.


10. Importați active

Înainte de a începe codarea, trebuie să adăugăm activele noastre la proiectul Unity. Puteți face una din următoarele căi:

  • Selectați Importați un nou activ de la bunuri meniul
  • adăugați elementele în dosarul de materiale din proiect
  • trageți și plasați activele în fereastra proiectului

După finalizarea acestui pas, ar trebui să vedeți activele din proiectul dvs. bunuri dosar în Proiect panou.

11. Creați scenă

Suntem gata să creăm scena jocului prin glisarea obiectelor către Ierarhie sau Scenă panou.


12. Contextul

Începeți prin tragerea și plasarea fundalului în Ierarhie panou. Ar trebui să apară în mod automat în Scenă panou.

Deoarece Scenă panoul este setat să afișeze o vizualizare 2D, veți observa că selectați Camera principală în Ierarhie arată o previzualizare a ceea ce aparatul foto va afișa. Puteți vedea, de asemenea, acest lucru în Joc vedere. Pentru a face vizibilă întreaga scenă, schimbați mărimea valoarea Camera principală la 1,58 în Inspector panou.


13. Etajul

Podeaua este folosită pentru a ne menține caracterul principal, după ce am adăugat fizica la joc. Trageți-l din bunuri și poziționați-o în scenă după cum se arată mai jos.


14. Collider pentru podea

Pentru a face detectarea podelei atunci când personajul îl atinge, trebuie să adăugăm o componentă, a Box Collider 2D pentru a fi precis.

Selectați podeaua din scenă, deschideți Inspector panou și faceți clic pe Adăugați componenta. Din lista de componente, selectați Box Collider 2D de la Fizica 2D secțiune.

15. Butonul de salt

Vom folosi butoanele pentru a controla personajul nostru principal în joc. Glisați și poziționați butonul de salt în Scenă și adăugați a Circle Collider2D așa cum este prezentat în etapa anterioară.


16. Săriți sunetul

Pentru a reda un sunet când personajul sare, trebuie mai întâi să îl atașăm pe butonul de salt. Selectați-l din Ierarhie sau Scenă vizualiza, faceți clic pe Adăugați componenta buton în Inspector și selectați Sursă audio în Audio secțiune.

Debifați Joacă pe Trezeste și faceți clic pe punctul mic din partea dreaptă, sub pictograma roată, pentru a selecta sunetul pe care dorim să-l redăm când player-ul apasă butonul. În pasul următor, vom implementa logica pentru redarea sunetului când player-ul fixează butonul.


17. Salt Script

Să creăm scriptul care ne va controla caracterul. Selectați butonul de salt și faceți clic pe Adăugați componenta buton în Inspector panou. Selectați Script nou și numește-o A sari. Nu uitați să schimbați limba în C #.

Deschideți fișierul nou creat și adăugați următorul fragment de cod.

utilizând UnityEngine; utilizând System.Collections; public clasa Salt: MonoBehour public float jumpForce; eroul privat al GameObject; // folosit pentru a face referire la caracterul nostru (erou) pe scena // Foloseste acest lucru pentru initializare void Start () hero = GameObject.Find ("Hero"); / / * Verificați dacă utilizatorul atinge butonul de pe dispozitiv * / if (Application.platform == RuntimePlatform.Android) if  Input.touchCount> 0) dacă (Input.GetTouch (0) .phase == TouchPhase.Began) CheckTouch (Input.GetTouch (0) .position, "a început"); // funcția creată mai jos altceva dacă (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  / * Verificați dacă utilizatorul atinge butonul din Editor, modificați valoarea OSXEditor dacă sunteți pe Windows * / if (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "a început");  dacă (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "terminat");  void CheckTouch (Vector3 pos, faza șir) / * Obțineți punctul de ecran în care utilizatorul atinge * / Vector3 wp = Camera.main.ScreenToWorldPoint (pos); Vector2 touchPos = Vector2 nou (wp.x, wp.y); Collider2D lovit = Physics2D.OverlapPoint (touchPos); / * dacă butonul este atins ... * / dacă (hit.gameObject.name == "JumpButton" && hit && phase == "a început") hero.rigidbody2D.AddForce (nou Vector2 (0f, jumpForce)); / / Adăugați forța de salt la erou audio.Play (); // redă audio atașat la acest obiect de joc (sunet de salt)

Fragmentul de cod poate părea descurajant, dar de fapt este destul de simplu. Mai întâi se face referire la erou obiect, o instanță a GameObject clasa, astfel încât să putem folosi mai târziu. Apoi detectăm dacă utilizatorul atinge butonul de salt și, dacă este, adaugă o forță la erou obiect. Nu în ultimul rând, redăm sunetul de salt atunci când este apăsat butonul de salt.

18. Butoane de mișcare

Pașii pentru a adăuga și a pune în aplicare butoanele de mișcare, stânga și dreapta, sunt foarte asemănătoare. Începeți prin plasarea butoanelor în scenă și adăugați a Circle Collider 2D la fiecare buton cum am făcut-o cu butonul de salt.



19. Scripturi de mișcare

Creați un script nou, atașați-l la butonul din stânga și denumiți-l Mută ​​la stânga. Înlocuiți conținutul cu următorul fragment de cod, care conține Mută ​​la stânga metodă.

utilizând UnityEngine; utilizând System.Collections; clasa publică MoveLeft: MonoBehavior public Vector3 moveSpeed ​​= Vector3 nou (); bool privat moving = false; jocul privat GameObject []; // array de obiecte de joc care se conformează scenei private GameObject bg; // Folosiți acest lucru pentru inițierea void Start () scene = GameObject.FindGameObjectsWithTag ("Movable"); // obiecte de joc cu etichetă mobilă bg = GameObject.Find ("Background"); / / Detect touch * / dacă (Application.platform == RuntimePlatform.Android) if (Input.touchCount> 0) if (Input.GetTouch (0) .phase == TouchPhase.Began) CheckTouch (Input.GetTouch (0) .pozitia, "a inceput");  altfel dacă (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  dacă (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "a început");  dacă (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "terminat");  // Mutare dacă este apăsat butonul dacă (deplasare && 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;   

În acest script, vom crea o serie de elemente etichetate ca deplasabil-le vom eticheta mai târziu în acest tutorial - pentru a le face mai ușor să le mutați pe toate odată. Pentru a muta elementele, verificăm mai întâi dacă butonul este atins și se modifică poziția viteza de miscare în Actualizați funcţie. Este la fel de simplu ca asta.

Creați un alt script, atașați-l la butonul din dreapta și denumiți-l Misca-te la dreapta. Acest script conține Misca-te la dreapta și implementarea sa este similară cu cea a Mută ​​la stânga metodă pe care am văzut-o acum o clipă. Schimbăm direcția mișcării prin înlocuire += moveSpeed cu -= moveSpeed. Aceasta va muta scena în direcția opusă.

În Misca-te la dreapta script, verificăm, de asemenea, dacă jucătorul a terminat nivelul.

utilizând UnityEngine; utilizând System.Collections; clasa publica MoveRight: MonoBehavior public Vector3 moveSpeed ​​= new Vector3 (); bool privat moving = false; jocul privat GameObject []; privat GameObject bg; public AudioClip completeSound; butoanele private GameObject []; privat GameObject completeText; privat bool terminat = fals; public Font goodDog; // Folosiți acest lucru pentru inițierea void Start () scene = GameObject.FindGameObjectsWithTag ("Movable"); bg = GameObject.Find ("Fundal"); butoane = GameObject.FindGameObjectsWithTag ("Butoane");  // Actualizare se numește o dată pe cadru void Update () if (Application.platform == RuntimePlatform.Android) if (Input.touchCount> 0) if (Input.GetTouch (0) .phase == TouchPhase.Began ) CheckTouch (Input.GetTouch (0). Poziție, "a început");  altfel dacă (Input.GetTouch (0) .phase == TouchPhase.Ended) CheckTouch (Input.GetTouch (0) .position, "ended");  dacă (Application.platform == RuntimePlatform.OSXEditor) if (Input.GetMouseButtonDown (0)) CheckTouch (Input.mousePosition, "a început");  dacă (Input.GetMouseButtonUp (0)) CheckTouch (Input.mousePosition, "terminat");  // Mutare dacă butonul este apăsat && stadiul nu se termină dacă (deplasare && bg.transform.position.x> -4.8f) pentru (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);  

Alerta  funcția creează și afișează un mesaj către player și redă sunetul atașat sprite-ului de fundal. Pentru ca acest lucru să funcționeze, adăugați sunetul corespunzător sprite de fundal așa cum am văzut mai devreme în acest tutorial. De asemenea, ascundem butoanele și reluăm jocul cu o întârziere de două secunde.

20. Sprite Sheet

Vom folosi o foaie de sprite pentru restul elementelor de joc. Unitatea are un editor de sprite care face folosirea spritelor o briza. Lucrările de artă utilizate în acest tutorial au fost obținute de la OpenGameArt.org.

Importați operele de artă, selectați-o din bunuri panou și modificați Sprite Mode opțiunea pentru Multiplu în Inspector panou.

Deschide Sprite Editor dând clic pe butonul de mai jos și selectați Slice> Automat.


21. Eroul

Cu foaia de sprite tăiată și gata de utilizare, faceți clic pe săgeata care apare atunci când este selectată foaia sprite și alegeți sprite pentru eroul, personajul principal al jocului nostru. Plasați-o pe scenă și adăugați-o Colizorul 2D componentă a acesteia.


22. Hero RigidBody 2D

Pentru a detecta o coliziune cu eroul nostru, cel puțin unul dintre obiectele care se ciocnesc trebuie să aibă a RigidBody 2D componenta atașată la acesta. Pentru a adăuga unul la eroul nostru, selectați Adăugați componenta în Inspector panou, urmat de Fizica 2D > RigidBody 2D.

Verifică Unghiul fixat pentru a preveni rotirea eroului în cazul unei coliziuni.

23. Sunetul eroului

Când eroul nostru este lovit de un inamic, jucăm un alt sunet pentru a oferi feedback jucătorului. Dacă ați jucat vreodată Super Mario Bros., atunci probabil știți ce efect suntem după. Pentru a realiza acest lucru, trebuie mai întâi să adăugăm sunetul. Selectați-l din Ierarhie sau Scenă vizualiza, faceți clic pe Adăugați componenta buton în Inspector și selectați Sursă audio în Audio secțiune.

Detaliile componentei audio vor apărea în Inspector Panel. Faceți clic pe punctul de sub pictograma roată și selectați lovit sunet.

24. Colectarea monedelor

Ca și în multe platforme tradiționale 2D, puteți colecta monede în jocul nostru. Pentru că vom folosi acest obiect de mai multe ori în joc, îl vom converti în a prefabricat odată ce am adăugat toate componentele necesare.

Trageți moneda din bunuri dosarul și adăugați o Collider2D după cum am văzut în pașii anteriori.


25. Moneda sunetului

Suntem un sunet ori de câte ori eroul nostru colectează o monedă. Adăugați un Sursă audio așa cum am văzut acum un moment și selectați monedă sunet din activele proiectului.



26. Script de monede și prefabricate

Atașați acest script simplu la monedă. Detectează când se ciocnesc moneda și eroul. Moneda este distrusă și se joacă un sunet care indică faptul că moneda a fost colectată de erou.

utilizând UnityEngine; utilizând System.Collections; clasa publica GrabCoin: MonoBehavior void OnTriggerEnter2D (altul Collider2D) if (other.gameObject.name == "Hero") audio.Play (); Distruge (gameObject.collider2D); gameObject.renderer.enabled = false; Distruge (gameObject, 0.47f); // Distruge obiectul - după- sunetul redat

Cu toate componentele în loc, trageți moneda de pe Ierarhie panou la bunuri panou pentru ao converti la a prefabricat. Veți observa că textul devine albastru indicând că este acum un Prefab.


27. Enemy

Să nu uităm dușmanii jocului. Trageți opere de artă pentru inamic de la bunuri și adăugați două Colizorul 2D componente, după cum se arată în imaginea de mai jos.


Colizii sunt reduse în dimensiune pentru a împiedica eroul să se ciocnească simultan cu ambii colizori. Modificați setările fiecăruia Colizorul 2D componenta de mai jos.

Primul collider din panou este cel mai de vârf collider pe care l-am adăugat inamicului. Ea va detecta dacă eroul va sări deasupra inamicului și îl va distruge. Logica acestei acțiuni este prezentată în scriptul de mai jos.

Marchează al doilea colizor ca declanșator, bifând caseta de selectare Este declanșator. Detectează când inamicul intră în erou sau invers. Când se întâmplă acest lucru, jucătorul pierde jocul.


Scriptul atașat inamicului este prezentat mai jos și implementează logica pe care tocmai am discutat-o. După cum puteți vedea, dușmanul este mutat la stânga în fiecare cadru și scriptul detectează când eroul sare în vârful inamicului sau când eroul intră în dușman.

utilizând UnityEngine; utilizând System.Collections; clasa publica Enemy: MonoBehour public Vector3 moveSpeed; public AudioClip hitSound; public GameObject alertBridge; // Folosiți acest lucru pentru inițializare void Start ()  // Actualizarea se numește o dată pe cadru void Update () transform.position - = moveSpeed; // Mutare inamicul la stânga void OnCollisionEnter2D (altul Collision2D) // Eroul sări pe inamic if (other.gameObject.name == "Hero") AudioSource.PlayClipAtPoint (hitSound, transform.position); Distruge (gameObject);  void OnTriggerEnter2D (altul Collider2D) // erou loveste partea inamicului if (other.gameObject.name == "Hero") other.gameObject.audio.Play (); // Redați distrugerea audio (other.gameObject.collider2D); // Eliminați colizorul pentru a evita repetarea audio al altora.gameObject.renderer.enabled = false; // Face obiectul invizibil Destroy (other.gameObject, 0.626f); // Distruge obiectul atunci când se termină redarea audio, distrugându-l înainte, va determina soneria să oprească alertBridge.GetComponent () Alert ("gameover"); 

28. Caramizi

Caramizile sunt folosite ca platforme. Eroul poate sări pe cărămizi pentru a evita dușmanii și pentru a colecta monede. Glisați caracterele din caramida din bunuri și adăugați o Colizorul 2D componentă a acesteia. Nu uitați să îl convertiți la a prefabricat, deoarece va fi folosit destul de mult în joc.


29. Sfârșitul

Vom folosi un sprite pentru a arăta linia de sosire a nivelului. Trageți-l din bunuri panou la Scenă după cum se arată în imaginea de mai jos.

30. Plugin Dolby Audio


Să îmbunătățim experiența audio a jocului nostru utilizând pluginul Dolby Audio pentru unitate. Cu toate acestea, permiteți-mi să explic mai întâi de ce ar trebui să folosiți pluginul Dolby Audio și cum vă va îmbunătăți jocul.

Dolby Digital Plus este o soluție audio avansată, integrată în multe dispozitive mobile, inclusiv tablete. Aplicațiile mobile pot utiliza funcțiile Dolby Digital Plus prin API. Unele beneficii includ optimizarea audio, maximizarea volumului și nivelarea volumului. Dolby și-a făcut API-ul disponibil pentru mai multe platforme, inclusiv Android și Kindle Fire. În jocul nostru, vom profita de plug-in-ul Dolby Audio pentru unitate.

Rețineți că pluginul pentru Unity este gratuit și foarte ușor de integrat. Cu alte cuvinte, nu există nici un motiv să nu-l includeți în următorul joc.

Începeți prin descărcarea pluginului Dolby Unity. Puteți să o descărcați de la Unity Asset Store sau direct de pe site-ul dezvoltatorului Dolby. Dacă alegeți ultima opțiune, creați un cont gratuit pentru a descărca plugin-ul sau pentru a vă conecta dacă aveți deja un cont de dezvoltator Dolby. Extrageți pachetul și copiați versiunea de care aveți nevoie Active> Pluginuri> Android. Atât de ușor este să instalați pluginul pentru Unity.

Creați un script nou și atașați-l la un obiect care este întotdeauna prezent în joc, cum ar fi fundalul sau camera. Denumiți scenariul Dolby și să o populați cu următorul fragment de cod.

utilizând UnityEngine; utilizând System.Collections; utilizând System.Runtime.InteropServices; // ne permite să folosim DLLImport public class Dolby: MonoBehavior private GameObject debugText; public Font arial; / * Funcții plugin import * / [DllImport ("DSPlugin")] Bool extern static extern isAvailable (); [DllImport ("DSPlugin")] static extern extern int initialize (); [DllImport ("DSPlugin")] statică externă externă int setProfile (int profileid); [DllImport ("DSPlugin")] static public extern int suspendSession (); [DllImport ("DSPlugin")] public statică externă int restartSession (); [DllImport ("DSPlugin")] public extern static release void (); // Folosiți acest lucru pentru inițializare void Start () / * Textfield creat pentru feedback * / debugText = new GameObject (); debugText.AddComponent ( "GUIText"); debugText.guiText.font = arial; debugText.guiText.fontSize = 14; debugText.guiText.color = culoare nou (255, 0, 0); debugText.transform.position = nou Vector3 (0, 1, 0); / * Inițializați Dolby dacă este disponibil * / if (isAvailable ()) Invocate (Init, 0.1f); // Așteptați 100 ms pentru a vă asigura că serviciul Dolby este activat altceva debugText.guiText.text = "Dolby Sound Not Available";  void Init () debugText.guiText.text = "Dolby Sound Available"; setProfile (2); / * Setați profilul la "Joc" * / initialize ();  void OnApplicationPause () suspendSession (); // Dolby sunet se oprește dacă aplicația este comutată sau întreruptă void OnApplicationFocus () restartSession (); // Reporniți sunetul Dolby dacă aplicația este activă void OnApplicationQuit () release (); // Stalp complet Dolby Sound 

Sunt sigur că sunteți de acord că este foarte ușor să integrați API-ul Dolby Audio în jocul dvs. Mai întâi creăm un debugText obiect, care este de tip GameObject, pentru a primi feedback de la dispozitiv. Importim apoi funcțiile necesare definite de Dolby Audio API și inițializăm Dolby Audio API dacă dispozitivul utilizatorului îl acceptă.

Pentru a vă asigura că serviciul Dolby este activat, așteptăm scurt (0.1s) înainte de a apela inițializa () metodă. Dacă nu facem acest lucru, există o șansă să primești a -1 eroare, care se poate întâmpla când încercați să setați Dolby atunci când serviciul se stabilește.

Dolby include, de asemenea, funcții de suspendare și repornire a sunetului când este necesar, ceea ce este util atunci când trecem la o altă aplicație și nu avem nevoie de îmbunătățirea sunetului. Acest lucru este important pentru conservarea energiei acumulatorului și a altor resurse ale dispozitivului. De asemenea, putem opri complet amplificarea sunetului invocând eliberare cum facem OnApplicationQuit.


31. Testarea

Este timpul să testați jocul. Apăsați Command-P pentru a reda jocul în Unity. Dacă totul funcționează conform așteptărilor, sunteți pregătiți pentru pașii finali.


32. Setările playerului

Când sunteți mulțumit de jocul dvs., este timpul să selectați Construiți setările de la Fişier meniu și faceți clic pe Setările playerului buton. Acest lucru ar trebui să aducă Setările playerului în Inspector panou în care puteți seta parametrii pentru aplicația dvs..

Aceste setări sunt specifice aplicației și includ creatorul sau compania, rezoluția aplicației, modul de afișare etc. Aceste setări depind de dispozitivele pe care le vizați și de magazinele sau piețele pe care le veți publica jocul.


33. Icoane și imagini splash

Folosind grafica pe care ați creat-o mai devreme, puteți crea acum o imagine irezistibilă și o imagine splash pentru jocul dvs. Unitatea vă arată dimensiunile necesare, care depind de platforma pe care o construiți.

34. Construiți și jucați


Odată ce proiectul dvs. este configurat corect, este timpul să revizuiți Construiți setările și faceți clic pe Construi buton. Asta e tot ce este nevoie pentru a vă construi jocul pentru testare și / sau distribuție.

Concluzie

În acest tutorial, am aflat despre noul plug-in Dolby Audio pentru unitate, foi de sprite, controale, detectarea coliziunilor și alte aspecte ale dezvoltării jocurilor folosind Unity. Vă încurajez să experimentați rezultatul și să personalizați jocul pentru a-l creați. Sper că ți-a plăcut acest tutorial și l-am găsit de ajutor.

Cod