Create et 2D plattformspill med Unity og Dolby Audio API 
 72 
 Del 
 20 
 Del 
 
 Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av. 
 Sponset Innhold 
 Dette sponset post har et produkt som er relevant for våre lesere mens møte våre redaksjonelle retningslinjer for å være objektiv og pedagogisk. 
 Hva du skal lage 
 Innledning 
 
 I denne opplæringen vil du lære hvordan du kan lage en mobil 2D spill ved hjelp av C # og Unity. Vi kommer til å dra nytte av Dolby Audio Plugin for Unity for å forbedre spillets audial opplevelse. Målet med spillet er enkel, å nå den andre siden av nivået mens unngå fiender og samle mynter 
 
 I denne opplæringen vil du lære følgende aspekter av Unity spillutvikling. 
 < li> sette opp et 2D-prosjekt i Unity 
 
 skape prefabs 
 
 bevegelse og handling knapper 
 
 arbeide med fysikk kollisjoner 
 
 bruke en sprite ark 
 
 integrere Dolby Audio API 
 
1. Opprett et nytt Unity Prosjekt
 Åpne Unity og velg  Nytt prosjekt 
 fra  Fil 
 menyen for å åpne den nye dialogen prosjektet. Fortell Unity hvor du vil lagre prosjektet og sette  
  Sett opp standardverdier for:. 
 Rullegardinmenyen til  2D 
 
 
 2. Bygg Innstillinger 
 
 I neste trinn, du presentert med Unity brukergrensesnitt. Sette prosjektet opp for mobil utvikling ved å velge  Bygg Settings 
 fra  Fil 
 meny og velg  Android 
 som målet plattformen. 
 
 
 3. Enheter 
 
 Siden vi er i ferd med å skape et 2D spill, det første vi må gjøre etter å ha valgt målet plattformen er å velge størrelsen på kunstverk som vi skal bruke i spillet. Fordi Android er en åpen plattform, det er et bredt spekter av enheter, skjermoppløsninger, og pikseltetthet tilgjengelig på dagens marked. Noen av de mer vanlige de er: 
 
 Samsung Galaxy SIII: 720px x 1280px, 306 ppi 
 
 Asus Nexus 7 Tablet: 800px x 1280px, 216 ppi 
 
 Motorola Droid X: 854px x 480px, 228 ppi 
 
 Selv om vi skal fokusere på Android-plattformen i denne opplæringen, kan du bruke den samme koden for å målrette noen av de andre plattformer som Unity støtter. 
 
4. Eksport Graphics
 Avhengig av hvilke enheter du målretter, kan det hende du må konvertere skisser for spillet til anbefalt størrelse og pikseltetthet. Du kan gjøre dette i din favoritt bilde editor. Jeg har brukt den  Juster størrelse ... 
 funksjon under  Verktøy 
 menyen i OS X  Forhåndsvisning 
 søknad. 
 
 
 5. Unity User Interface 
 
 Før vi kommer i gang, sørg for å klikke på  2D 
 knappen i  Scene 
 panel. Du kan også endre oppløsningen som blir vist i  Spill 
 panel. 
 
 
 6. Spill Interface 
 
 Grensesnittet i spillet vårt vil være grei. Skjermbildet over gir deg en idé av kunstverket vi skal bruke, og hvordan det endelige spillet grensesnittet vil ende opp som ser. Du kan finne skisser for denne opplæringen i kildefilene for denne opplæringen. 
 
7. Programming Language
 Du kan bruke en av tre programmeringsspråk når du bruker Unity, C #, UnityScript, en variant av Javascript, og Boo. Hver av disse programmeringsspråk har sine fordeler og ulemper, og det er opp til deg å bestemme hvilken du foretrekker. Min personlige preferanse går til programmeringsspråket C #, så det er det språket jeg skal bruke i denne opplæringen. 
 
 Hvis du velger å bruke et annet programmeringsspråk, sørg for å ta en titt på Unity sin Script Reference for eksempler. 
 
8. 2D Graphics
 Unity har bygget et navn for å være en god plattform for å lage 3D-spill for ulike plattformer, for eksempel Microsofts Xbox 360, Sonys PS3, Nintendo Wii, web, og ulike mobile plattformer. 
 < p> Selv om det har alltid vært mulig å bruke Unity for 2D spillutvikling, det var ikke før utgivelsen av Unity 4.3 at det følger med mors 2D støtte. Vi skal lære å arbeide med bilder som sprites i stedet for teksturer i de neste trinnene. 
 
9. Lydeffekter
 Jeg skal bruke en rekke lyder for å skape en god audial opplevelse for spillet. Lydeffektene er brukt i denne opplæringen ble hentet fra as3sfxr og PlayOnLoop. 
 
10. Import Eiendeler
 Før vi begynner koding, må vi legge våre eiendeler til Unity prosjektet. Du kan gjøre dette én av flere måter: 
 
 Velg  Import New Asset 
 fra  Eiendeler 
 menyen 
 
 legge til elementene til eiendelene mappe i prosjektet 
 
 dra og slippe eiendelene i prosjektvinduet 
 
 Etter å ha fullført dette trinnet, bør du se verdiene i prosjektet ditt  mappe Eiendeler 
 i  Prosjekt 
 panel. 
 
 11. Opprett Scene 
 
 Vi er klar til å lage scene av spillet vårt ved å dra objekter til  Hierarki 
 eller  Scene 
 panel. 
 
 
 12. Bakgrunn 
 
 Start ved å dra og slippe bakgrunnen inn i  Hierarki 
 panel. Det vises automatisk i  Scene 
 panel. 
 
 Fordi  Scene 
 panel er satt til å vise et 2D-visning, vil du legge merke til at du velger  Hoved Kamera 
 i  Hierarki 
 viser en forhåndsvisning av hva kameraet kommer til å vise. Du kan også se dette i  Spillanmeldelser visning. For å gjøre det hele scenen synlig, endre  Størrelse 
 verdien av  Hovedkamera 
 til  1,58 
 i  Inspector 
 panel. 
 < hr> 
 13. Etasje 
 
 Gulvet blir brukt til å holde våre hovedpersonen fra å falle når vi har lagt fysikk til spillet. Dra den fra  Eiendeler 
 mappe og plassere det i scenen som vist nedenfor. 
 
 
 14. Floor Collider 
 
 For å gjøre gulvet oppdage når karakteren berører det, må vi legge til en komponent, en  Box Collider 2D 
 å være presis. 
 
 Velg gulvet i scenen, åpner  Inspector 
 panelet, og klikk  Legg til Component 
. Fra listen over komponenter, velger du  Box Collider 2D 
 fra  Fysikk 2D 
 delen. 
 
 15. Gå Button 
 
 Vi vil bruke knappene til å kontrollere vår hovedpersonen i spillet. Dra og plassere hoppe knappen i  Scene Hotell og legge en  Circle Collider2D 
 komponent som vist i forrige trinn. 
 
 
 16. Jump Sound 
 
 Hvis du vil spille av en lyd når karakteren hopper, trenger vi først å feste den til hopp-knappen. Velg det fra  Hierarki 
 eller  Scene 
 visning, klikker du på  Legg til Component 
 knappen i  Inspector 
 panelet, og velg  Audio Source 
 i  Audio 
 delen. 
 
 kryssene  Spill på Awake Hotell og klikk den lille prikken på høyre side, under tannhjulikonet, for å velge den lyden vi ønsker å spille når spilleren kraner på knappen. I neste trinn, vil vi implementere logikk for å spille av lyden når spilleren kraner på knappen. 
 
 
 17. Gå Script 
 
 La oss lage skript som vil styre vår karakter. Velg hoppeknappen, og klikk på  Legg til Component 
 knappen i  Inspector 
 panel. Velg  New Script Anmeldelser og gi den navnet  Gå 
. Ikke glem å endre språket til C # 
 
 Åpne den nyopprettede filen og legge inn følgende kode 
 hjelp UnityEngine, bruker System.Collections; public class Hopp:.. MonoBehaviour {public float jumpForce; private GameObject helten; //brukes til å referere til vår karakter (helten) på scenen //Bruk denne for initialisering void Start () {hero = GameObject.Find ("Hero"); //blir helten spillet objektet} //Update kalles en gang per ramme void Update () {/* Sjekk om bruker berører knappen på enheten * /if (Application.platform == RuntimePlatform.Android) {if ( Input.touchCount > 0) {if (Input.GetTouch (0) .phase == TouchPhase.Began) {CheckTouch (Input.GetTouch (0) .position, "begynte"); //Funksjon som er opprettet under} else if (Input.GetTouch (0) .phase == TouchPhase.Ended) {CheckTouch (Input.GetTouch (0) .position, "avsluttet"); }}} /* Sjekk om bruker berører knappen på Editor, endre OSXEditor verdi hvis du er på Windows * /if (Application.platform == RuntimePlatform.OSXEditor) {if (Input.GetMouseButtonDown (0)) {CheckTouch (Input.mousePosition, "begynte"); } If (Input.GetMouseButtonUp (0)) {CheckTouch (Input.mousePosition, "avsluttet"); }}} Void CheckTouch (Vector3 pos, string fase) {/* Få skjermen punktet hvor brukeren er rørende * /Vector3 wp = Camera.main.ScreenToWorldPoint (pos); Vektor2 touchPos = new Vektor2 (wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint (touchPos); /* Hvis knappen trykkes ... * /if (hit.gameObject.name == "JumpButton" & & hit & & fase == "begynte") {hero.rigidbody2D.AddForce (ny Vektor2 (0f , jumpForce)); //Legg hopp kraft til helten audio.Play (); //Spille av lyd knyttet til dette spillet objekt (hopp lyd)}}} 
 Kodebiten kan virke skremmende, men det er faktisk ganske grei. Vi først få en henvisning til helten objekt, en forekomst av GameObject klasse, så vi kan bruke det senere. Vi deretter oppdage hvis brukeren berører hoppe knappen, og hvis de er, legger en kraft til helten objektet. Sist men ikke minst, vi spiller hoppe lyd når hoppeknappen er avlyttet. 
 
 18. Bevegelse Knapper 
 
 Trinnene å legge og gjennomføre bevegelses knapper, venstre og høyre, er svært like. Start med å plassere knappene i scenen og legge til en  Circle Collider 2D 
 til hver knapp som vi gjorde med hopp-knappen. 
 
 
 
19 . Bevegelse Scripts
 Lag et nytt manus, fester den til venstre knapp, og gi den navnet  MoveLeft 
. Erstatte innholdet med følgende kodebiten, som inneholder MoveLeft metoden 
 hjelp UnityEngine, bruker System.Collections; public class MoveLeft. MonoBehaviour {public Vector3 moveSpeed = new Vector3 (); privat bool flytting = false; privat GameObject [] scene; //utvalg av spill objekter som er i samsvar scenen private GameObject bg; //Bruk denne for initialisering void Start () {scene = GameObject.FindGameObjectsWithTag ("Moveable"); //Spill objekter med Move tag bg = GameObject.Find ("Bakgrunn"); //Spill Bakgrunn} //Update kalles en gang per ramme void Update () {/* Detect berøring * /if (Application.platform == RuntimePlatform.Android) {if (Input.touchCount > 0) {if (Input. GetTouch (0) .phase == TouchPhase.Began) {CheckTouch (Input.GetTouch (0) .position, "begynte"); } Else if (Input.GetTouch (0) .phase == TouchPhase.Ended) {CheckTouch (Input.GetTouch (0) .position, "avsluttet"); }}} If (Application.platform == RuntimePlatform.OSXEditor) {if (Input.GetMouseButtonDown (0)) {CheckTouch (Input.mousePosition, "begynte"); } If (Input.GetMouseButtonUp (0)) {CheckTouch (Input.mousePosition, "avsluttet"); }} //Flytt hvis knappen trykkes if (flytting & & bg.transform.position.x < 4.82f) {for (int i = 0; i < scene.Length; i ++) {if (scene [ ,,,0],i] = null) {scene [i] .transform.position + = moveSpeed!; }}}} Void CheckTouch (Vector3 pos, string fase) {Vector3 wp = Camera.main.ScreenToWorldPoint (pos); Vektor2 touchPos = new Vektor2 (wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint (touchPos); if (hit.gameObject.name == "LeftButton" & & hit & & fase == "begynte") {flytte = true; } If (hit.gameObject.name == "LeftButton" & & hit & & fase == "endte") {flytte = false; }}} 
 I dette skriptet, skaper vi en rekke elementer som er merket som Move-vi tag dem senere i denne opplæringen å gjøre det enklere å flytte dem alle på en gang. Å flytte elementene, vi først sjekke om knappen blir rørt og endre posisjon ved hjelp moveSpeed i Update-funksjonen. Det er så enkelt som det. 
 
 Opprett en annen script, koble den til høyre knapp, og gi den navnet  MoveRight 
. Dette skriptet inneholder MoveRight metoden og gjennomføringen er lik som den MoveLeft metoden vi så et øyeblikk siden. Vi endre retningen av bevegelsen ved å erstatte + = moveSpeed med - = moveSpeed. Dette vil flytte scenen i motsatt retning 
 
  MoveRight 
 script, sjekker vi også hvis spilleren har fullført nivå 
 hjelp UnityEngine;.. Hjelp System.Collections; offentlig klasse MoveRight: MonoBehaviour {public Vector3 moveSpeed = new Vector3 (); privat bool flytting = false; privat GameObject [] scene; private GameObject bg; offentlig AudioClip completeSound; private GameObject [] knapper; private GameObject completeText; privat bool endte = false; offentlig Font goodDog; //Bruk denne for initialisering void Start () {scene = GameObject.FindGameObjectsWithTag ("Moveable"); bg = GameObject.Find ("Bakgrunn"); knapper = GameObject.FindGameObjectsWithTag ("knapper"); } //Update kalles en gang per ramme void Update () {if (Application.platform == RuntimePlatform.Android) {if (Input.touchCount > 0) {if (Input.GetTouch (0) .phase == TouchPhase. Begynte) {CheckTouch (Input.GetTouch (0) .position, "begynte"); } Else if (Input.GetTouch (0) .phase == TouchPhase.Ended) {CheckTouch (Input.GetTouch (0) .position, "avsluttet"); }}} If (Application.platform == RuntimePlatform.OSXEditor) {if (Input.GetMouseButtonDown (0)) {CheckTouch (Input.mousePosition, "begynte"); } If (Input.GetMouseButtonUp (0)) {CheckTouch (Input.mousePosition, "avsluttet"); }} //Flytt hvis knappen trykkes & & Scenen er ikke over hvis (flytting & & bg.transform.position.x > -4.8f) {for (int i = 0; i < scene.Length; i ++)! {if (scene [i] = null) {scene [i] .transform.position - = moveSpeed; }}} //Stage Fullført if (bg.transform.position.x < = -4.8f & & endte == false) {alert ("fullstendig"); }} Void CheckTouch (Vector3 pos, string fase) {Vector3 wp = Camera.main.ScreenToWorldPoint (pos); Vektor2 touchPos = new Vektor2 (wp.x, wp.y); Collider2D hit = Physics2D.OverlapPoint (touchPos); if (hit.gameObject.name == "RightButton" & & hit & & fase == "begynte") {flytte = true; } If (hit.gameObject.name == "RightButton" & & hit & & fase == "endte") {flytte = false; }} Public void Alert (string handling) {endte = true; completeText = new GameObject (); completeText.AddComponent ("GUIText"); completeText.guiText.font = goodDog; completeText.guiText.fontSize = 50; completeText.guiText.color = ny farge (255, 0, 0); if (handling == "komplett") {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 ++) {knappene [i] .renderer.enabled = false; Påkall ("restart", 2); }} Void start () {Application.LoadLevel (Application.loadedLevel); }} 
 Alert funksjonen lager og viser en melding til spilleren og spiller lyden festet til bakgrunnen sprite. For at dette skal fungere, legger den tilsvarende lyd i bakgrunnen sprite som vi så tidligere i denne opplæringen. Vi skjuler også knappene og starte spillet med en forsinkelse på to sekunder. 
 
 20. Sprite Sheet 
 
 Vi vil bruke en sprite ark for resten av spillelementer. Unity har en sprite editor som gjør bruk sprites en lek. Kunstverket som brukes i denne opplæringen ble hentet fra OpenGameArt.org. 
 
 Importer kunstverk, velger du den fra  Eiendeler 
 panel og endre  Sprite Mode 
 alternativ til < b> Multiple 
 i  Inspector 
 panel 
 
 Åpne  Sprite Editor 
 ved å klikke på knappen nedenfor og velg  Slice >.; Automatisk 
. 
 
 
 21. Hero 
 
 Med sprite ark skiver og klar til bruk, kan du klikke på pilen som vises når sprite ark er valgt, og velg sprite for helten, hovedpersonen i spillet vårt. Plasser den på scenen og legge til en  Collider 2D 
 komponent til den. 
 
 
 22. Hero RigidBody 2D 
 
 For å oppdage en kollisjon med vår helt, i hvert fall en av de kolliderende objektene må ha en  RigidBody 2D 
 komponent knyttet til den. For å legge til en til vår helt, velger du  Legg til Component 
 i  Inspector 
 panel, etterfulgt av  Fysikk 2D 
 >  RigidBody 2D 
. 
 
 Sjekk  Fast Angle 
 boksen for å hindre at helten fra roterende hvis det oppstår en kollisjon. 
 
 23. Hero Sound 
 
 Når vår helt blir truffet av en fiende, vi spiller en annen lyd for å gi spilleren tilbakemeldinger. Hvis du noensinne har spilt Super Mario Bros., så har du sannsynligvis vet hva effekten vi er ute etter. For å oppnå dette, må vi først legge til lyd. Velg det fra  Hierarki 
 eller  Scene 
 visning, klikker du på  Legg til Component 
 knappen i  Inspector 
 panelet, og velg  Audio Source 
 i  Audio 
 delen. 
 
 Detaljene i lydkomponent vil dukke opp i  Inspector Panel 
. Klikk på prikk under tannhjulikonet og velg  truffet 
 lyd. 
 
 24. Samle mynter 
 
 Som i mange tradisjonelle 2D-plattformspill, kan du samle mynter i spillet vårt. Fordi vi vil bruke dette objektet flere ganger i spillet, vil vi konvertere den til en  Prefab 
 når vi har lagt alle nødvendige komponenter. 
 
 
 
 Drag mynten fra  mappe Eiendeler Kjøpe og legge en  Collider2D 
 som vi så i forrige trinn. 
 
 
 25. Coin Sound 
 
 Vi spiller en lyd når helten vår samler en mynt. Legg en  Audio Source 
 komponent som vi så et øyeblikk siden, og velg  mynt 
 lyd fra prosjektets eiendeler. 
 
 
 
26. Coin Script & Prefab
 Legg ved denne enkle script til mynt. Den oppdager når mynten og helten kolliderer. Mynten er ødelagt og en lyd spilles for å indikere at mynten har blitt samlet inn av helten 
 hjelp UnityEngine, bruker System.Collections; public class GrabCoin. MonoBehaviour {void OnTriggerEnter2D (Collider2D andre) {if (other.gameObject .name == "Hero") {audio.Play (); Ødelegge (gameObject.collider2D); gameObject.renderer.enabled = false; Ødelegge (gameObject, 0.47f); //ødelegge objektet -after- lyden spilles}}} 
 Med alle komponentene på plass, drar mynten fra  Hierarki 
 panelet til  Eiendeler 
 panel for å konvertere den til en  Prefab 
. Du vil merke teksten blir blå indikerer det er nå en Prefab. 
 
 
 27. Enemy 
 
 La oss ikke glemme fiendene i spillet. Dra skisser for fienden fra  mappe Eiendeler Kjøpe og legge sammen to  Collider 2D 
 komponenter som vist i skjermbildet nedenfor. 
 
 
 
 De colliders er redusert i størrelse for å hindre at helten fra å kollidere med begge colliders samtidig. Endre innstillingene for hvert  Collider 2D 
 komponent som nedenfor. 
 
 Den første Collider i panelet er det øverste Collider at vi har lagt til fienden. Det vil oppdage om helten hopper oppå fienden og ødelegger det. Logikken for denne handlingen er vist i skriptet nedenfor. 
 
 Vi markere andre Collider som en utløser ved å krysse av i boksen merket  Er Trigger 
. Den oppdager når fienden løper inn helten eller vice versa. Når det skjer, taper spilleren spillet. 
 
 
 Skriptet festet til fienden er vist nedenfor, og implementerer logikken vi bare diskutert. Som du kan se, er fienden flyttet til venstre i hver ramme og scriptet oppdager når helten hopper oppå fienden eller når helten går inn i fiendens 
 hjelp UnityEngine;. Hjelp System.Collections; public class Enemy: MonoBehaviour {public Vector3 moveSpeed; offentlig AudioClip hitSound; offentlig GameObject alertBridge; //Bruk denne for initialisering void Start () {} //Update kalles en gang per ramme void Update () {transform.position - = moveSpeed; //Flytt fienden til venstre} void OnCollisionEnter2D (Collision2D andre) //Hero hopper på fiendens {if (other.gameObject.name == "Hero") {AudioSource.PlayClipAtPoint (hitSound, transform.position); Ødelegge (gameObject); }} Void OnTriggerEnter2D (Collider2D andre) //helten treffer siden av fienden {if (other.gameObject.name == "Hero") {other.gameObject.audio.Play (); //Spille lyd Destroy (other.gameObject.collider2D); //Fjern Collider å unngå lyd replaying other.gameObject.renderer.enabled = false; //Gjør objekt usynlig Destroy (other.gameObject, 0.626f); //Destroy objekt når lyden er ferdig å spille, ødelegge det før vil føre til at lyd for å stoppe alertBridge.GetComponent () Alert ("gameover."); }}} 
28. Bricks
 Bricks brukes som plattformer. Helten kan hoppe på klossene for å unngå fiender og samle mynter. Dra murstein kunstverk fra  Eiendeler 
 panel og legge til en  Collider 2D 
 komponent til den. Ikke glem å konvertere den til en  Prefab 
, fordi det vil bli brukt ganske mye i spillet. 
 
 
 29. The End 
 
 Vi vil bruke en sprite vise målstreken av nivået. Dra den fra  Eiendeler 
 panelet til  Scene 
 som vist i skjermbildet nedenfor. 
 
 30. Dolby Audio Plugin 
 
 
 
 La oss styrke audial opplevelsen av våre spill ved hjelp av Dolby Audio Plugin for Unity. Men la meg først forklare hvorfor du bør bruke Dolby Audio Plugin og hvordan det vil forbedre spillet ditt. 
 
 Dolby Digital Plus er et avansert audio løsning bygget inn i mange mobile enheter, inkludert tabletter. Mobile applikasjoner kan utnytte Dolby Digital Plus evner via API. Noen av fordelene inkluderer Audio Optimization, Volume maksimering, og volumutjevning. Dolby har gjort sin API tilgjengelig for flere plattformer, inkludert Android og Kindle Fire. I spillet vårt, vil vi dra nytte av Dolby Audio Plugin for Unity. 
 
 Merk at plugin for Unity er gratis å bruke og veldig lett å integrere. Med andre ord, det er ingen grunn til ikke å ta det med i neste kamp. 
 
 Start med å laste ned Dolbys Unity plugin. Du kan laste det ned fra Unity Asset Store eller direkte fra Dolby utvikleren nettside. Hvis du velger det siste alternativet, og deretter opprette en gratis konto for å laste ned plugin eller logg inn hvis du allerede har en Dolby utviklerkonto. Pakk ut pakken og kopierer den versjonen du trenger for å  Eiendeler > Plugins > Android 
. Det er hvor enkelt det er å installere plugin for Unity. 
 
 Opprett et nytt manus og fest den til et objekt som er alltid til stede i spillet som bakgrunnen eller kameraet. Navn skriptet  Dolby Hotell og fylle den med inn følgende kode 
 hjelp UnityEngine;. Bruker System.Collections, ved hjelp System.Runtime.InteropServices; //Tillater oss å bruke DLLImportpublic klasse Dolby: MonoBehaviour {private GameObject debugText; offentlig Font arial; /* Import plugin funksjoner * /[DllImport ("DSPlugin")] public static extern bool 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 utgivelsen (); //Bruk denne for initialisering void Start () {/* Textfield opprettet for tilbakemeldinger * /debugText = new GameObject (); debugText.AddComponent ("GUIText"); debugText.guiText.font = arial; debugText.guiText.fontSize = 14; debugText.guiText.color = ny farge (255, 0, 0); debugText.transform.position = new Vector3 (0, 1, 0); /* Initial Dolby hvis tilgjengelig * /if (isavailable ()) {Invoke (Init, 0,1f); //Vent 100ms å sørge for Dolby-tjenesten er aktivert} else {debugText.guiText.text = "Dolby Sound Ikke tilgjengelig"; }} Void Init () {debugText.guiText.text = "Dolby Sound Tilgjengelig"; setProfile (2); /* Sett profil til "Game" * /initial (); } Void OnApplicationPause () {suspendSession (); //Dolby lyd stopper hvis app slått eller stoppet} void OnApplicationFocus () {restartSession (); //Restart Dolby lyd hvis applikasjonen er aktiv} void OnApplicationQuit () {frigjøring (); //Stopper Dolby Sound helt}} 
 Jeg er sikker på at du er enig i at det er veldig lett å integrere Dolby Audio API i ditt spill. Vi først opprette en debugText objekt, som er av typen GameObject, å få tilbakemelding fra enheten. Vi deretter importere nødvendige funksjoner definert av Dolby Audio API og initialisere Dolby Audio API dersom brukerens enhet støtter det. 
 
 For å sikre at Dolby tjenesten er aktivert, vi kort vente (0.1s) før du ringer initial () -metoden. Hvis vi ikke gjør dette, er det en sjanse for at du får en -1 feil, noe som kan skje når du prøver å sette Dolby på når tjenesten er å bli etablert. 
 
 Dolby har også inkludert funksjoner for å suspendere og restart lyden når det trengs, noe som er nyttig når vi bytter til et annet program, og vi trenger ikke lydforbedring. Dette er viktig for å spare strøm og andre ressurser enheten. Vi kan også stoppe lydforbedring helt ved å påberope utgivelse som vi gjør i OnApplicationQuit. 
 
31. Testing
 Det er på tide å teste spillet. Trykk på Kommando-P for å spille spillet i Unity. Hvis alt fungerer som forventet, er du klar for de siste trinnene. 
 
32. Player Settings
 Når du er fornøyd med spillet, er det tid for å velge  Bygg Settings 
 fra  Fil 
 menyen og klikk på  Player Settings Anmeldelser knapp. Dette bør få opp  Player Settings 
 i  Inspector 
 panel der du kan stille inn parametrene for din søknad. 
 
 Disse innstillingene er programspesifikke og inkluderer skaperen eller firma , søknad oppløsning, skjermmodus, etc. Disse innstillingene er avhengig av hvilke enheter du målretter og butikkene eller markeder du skal publisere spillet på. 
 
33. Ikoner og Splash Images
 Ved hjelp av grafikken du opprettet tidligere, kan du nå lage et fint ikon og en splash bilde for spillet ditt. Unity viser deg de nødvendige størrelser, som er avhengig av plattformen du bygger på. 
 
 34. Bygg og Spill 
 
 
 
 Når prosjektet er riktig konfigurert, er det på tide å revidere  Bygg Innstillinger Kjøpe og klikk på  bygge 
 knappen. Det er alt det tar å bygge spillet for testing og /eller distribusjon. 
 
 Konklusjon 
 
I denne opplæringen, vi har lært om det nye Dolby Audio Plugin for Unity, sprite ark, kontroller, dueller, og andre aspekter av spillutvikling bruker Unity. Jeg oppfordrer deg til å eksperimentere med resultatet og tilpasse spillet for å gjøre den til din egen. Jeg håper du likte denne opplæringen, og fant den nyttig.

