I denne veiledningen viser jeg deg hvordan du kan dra nytte av det nye 2D-verktøyet som er inkludert i Unity for å lage et 2D-spill.
I denne opplæringen lærer du hvordan du lager et Unity 2D-prosjekt og lager et mobilspill med C # og Unity.
Målet med spillet er å skyte en teleporterende stråle på kyrene før de kan nå sikkerheten til låven.
I dette prosjektet lærer du følgende aspekter av enhetlig utvikling:
Åpne enhet og velg Nytt prosjekt fra Fil menyen for å åpne den nye prosjektdialogen. Velg en katalog for prosjektet ditt og settAngi standardinnstillinger for til 2D.
I neste trinn presenteres du med Unitys grensesnitt. Sett prosjektet opp for mobil utvikling ved å velge Bygg innstillinger fra Fil menyen og velg din valgfri plattform.
Enhet kan bygge for iOS, Android, BlackBerry og Windows Phone 8, noe som er flott hvis du planlegger å lage et mobilspill for flere plattformer.
Siden vi skal lage et 2D-spill, er det første vi må gjøre etter at du har valgt plattformen vi målretter, og velger størrelsen på bildet som vi skal bruke i spillet..
iOS:
Fordi Android er en åpen plattform, er det mange forskjellige enheter, skjermoppløsninger og pikseldensiteter. Noen av de vanligste er listet opp nedenfor.
Og for Enker Telefon og BlackBerry:
Selv om vi vil fokusere på iOS-plattformen i denne opplæringen, kan koden brukes til å målrette mot noen av de andre plattformene.
Avhengig av enheten du målretter mot, må du kanskje konvertere illustrasjonen til den anbefalte størrelsen og pixeldensiteten. Du kan gjøre dette i favorittbildeditoren din. Jeg har brukt Juster størrelse ... fungere under Verktøy menyen i OS X Forhåndsvisning applikasjon.
Pass på at du klikker 2D-knappen i scene panel. Du kan også endre oppløsningen som brukes til å vise scenen i Spill panel.
Brukergrensesnittet til spillet vårt vil være enkelt. Du finner kunstverket for denne opplæringen i kildefilene i denne opplæringen.
Du kan bruke ett av tre språk i Unity, C #, UnityScript, et språk som ligner på JavaScript når det gjelder syntaks, og Boo. Hvert språk har sine fordeler og ulemper, men det er opp til deg å bestemme hvilken du foretrekker. Min preferanse går til C # -syntaxen, så det er språket jeg skal bruke i denne opplæringen.
Hvis du bestemmer deg for å bruke et annet språk, så sørg for å se på Unitys Script Reference for eksempler.
Unity har bygget et navn for å være en god plattform for å lage 3D-spill for ulike plattformer, for eksempel Microsoft Xbox 360, Sony PS3, Nintendo Wii, nettet og ulike mobile plattformer.
Selv om det alltid har vært mulig å bruke Unity for 2D spillutvikling, var det ikke før utgivelsen av Unity 4.3 at den inkluderte innfødt 2D-støtte. Vi lærer å jobbe med bilder som sprites istedenfor teksturer i de neste trinnene.
Jeg bruker en rekke lyder for å forbedre spillopplevelsen. Lydeffektene som brukes i denne opplæringen finner du på Freesound.org.
Før vi starter kodingen, må vi legge til våre eiendeler til Unity-prosjektet. Det er flere måter å gjøre dette på:
Etter å ha fullført dette trinnet, bør du se eiendelene i prosjektet ditt Eiendeler mappe i Prosjekt panel.
Vi er klare til å lage scenen til spillet vårt ved å dra objekter til hierarki eller scene panel.
Begynn med å dra og slippe bakgrunnen i hierarki panel. Det skal da vises i scene panel.
Fordi det scene panelet er satt til å vise en 2D-visning, vil du legge merke til å velge Hovedkamera i hierarki viser en forhåndsvisning av hva kameraet skal vise. Du kan også se dette i spillvisningen. For å gjøre hele scenen synlig, endre Størrelse verdien av Hovedkamera til 1.6 i Inspektør panel.
Skipet er også et statisk element som spilleren ikke vil kunne kommunisere med. Plasser den i midten av scenen.
Velg låven fra Eiendeler panelet og dra det til scenen. Plasser den som vist på skjermbildet nedenfor.
For å sikre at låven blir varslet når en ku treffer den - går inn i låven - må vi legge til en komponent, a Box Collider 2D For å være presis.
Velg låven i scenen, åpne Inspektør panelet, og klikk Legg til komponent. Fra listen over komponenter velger du Box Collider 2D fra Fysikk 2D seksjon. Pass på å sjekke Er Trigger eske.
Vi vil at kua skal reagere når den treffer døren til låven, slik at vi må gjøre collider litt mindre. Åpne Inspektør og endre Størrelse og Senter verdier av collider for å flytte boksen nærmere døren til låven.
Det er på tide å skrive noen kode. Vi må legge til et skript slik at søknaden kan svare på kollisjonen når et ku går inn i låven.
Velg låven og klikk på Legg til komponent knappen i Inspektør panel. Å velge Nytt skript og nev det OnCollision. Husk å endre språket til C #.
Åpne den nyopprettede filen og legg til følgende kodestykke.
bruker UnityEngine; bruker System.Collections; offentlig klasse OnCollision: MonoBehaviour void OnTriggerEnter2D (Collider2D andre) if (other.gameObject.name == "cow (Clone)") / * Spill lagre kua lyden * / audio.Play (); / * Destroy kua * / Destroy (other.gameObject);
Utklippet kontrollerer for en kollisjon mellom objektet som skriptet er koblet til, låven og en gjenstand som heter ku (klon)
, som vil være en forekomst av kua Prefab som vi lager senere. Når en kollisjon finner sted, spilles en lyd og kuobjektet blir ødelagt.
For å spille en lyd når et ku treffer låven, må vi først legge lyden til låven. Velg den fra hierarki eller scene vis, klikk på Legg til komponent knappen i Inspektør panelet, og velg Lydkilde fra Audio seksjon.
Fjern merkingen Spill på Awake og klikk på den lille prikken til høyre, under tannhjulikonet, for å velge barnelyddet.
Du kan øke størrelsen på ikonene i Unitys brukergrensesnitt (gizmoer) ved å klikke dingser i scene panel og justere glidebryterens posisjon.
Dra strålegrafikken fra Eiendeler panel til scenen og legg til en collider til den. Dette er nødvendig for å oppdage en kollisjon med uheldig ku. UndersøkEr Trigger alternativ i Inspektør panel.
Opprett et nytt skript ved å gjenta trinnene jeg skisserte for noen få øyeblikk siden. Gi navnet på skriptet Kuleog erstatt innholdet med følgende kodestykke:
bruker UnityEngine; bruker System.Collections; offentlig klasse Bullet: MonoBehaviour public AudioClip cowSound; // Bruk dette for initialisering tomt Start () renderer.enabled = false; / * Gjør objekt usynlig * / // Oppdatering kalles en gang per ramme ugyldig Oppdatering () / * Få hovedinngang * / hvis (Input.GetButton ("Fire1")) renderer.enabled = true; / * Gjør objekt synlig * / / * Spill av lyden * / lyd. Spill (); hvis (renderer.enabled == true) transform.position + = Vector3.down * (Time.deltaTime * 2); / * Sjekk ut av grensen * / hvis (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;
Det er mye kode, men det er ikke komplisert. La oss se hva som skjer. Først oppretter vi en AudioClip
forekomst heter cowSound
, som vi skal bruke til å lagre en lydfil. Dette er bare en annen teknikk for å spille en lyd hvis du ikke vil legge til to lydkomponenter til objektet. Vi erklærer variabelen som offentlig, så vi kan få tilgang til den fra Inspektør. Klikk på den lille prikken til høyre for cowSound og velg lydfilen.
Vi lager rayen usynlig ved å deaktivere rendereren. Vi bruker det samme objektet, slik at vi kan spare ressurser, noe som er en viktig optimalisering for mindre kraftige enheter.
Vi oppdager berøringer på skjermen, noe som gjør at strålen synlig og spiller av lyden (se nedenfor). Hvis objektet er synlig, betyr det at det skal gå ned for å slå en ku.
Det er også kode for å oppdage om strålen er utenfor scenens grenser. Hvis dette er tilfelle, plasserer vi det igjen, klar til å brenne igjen (sjekk strålen x og y verdier i Inspektør).
Den siste delen kontrollerer om strålen treffer en ku. Hvis det gjør det, spiller det kua lyden og ødelegger kua. Strålen blir så gjort usynlig og reposisjonert i sin opprinnelige posisjon, klar til brann igjen.
For å legge til lyden for strålen, velg den i hierarki eller scene se og klikk Legg til komponent i Inspektør panel. Å velge Lydkilde fra Audio seksjon. Fjern merkingen Spill på Awake og klikk på den lille prikken til høyre for å velge lydfilen.
Dra grafikken for kua fra Eiendeler panelet og plasser det i scenen som vist nedenfor.
For å oppdage en kollisjon må minst en av de kolliderende objekter ha en RigidBody2D komponent assosiert med den. Som kua kan kollidere med både låven og strålen, er det best å legge komponenten til kua.
Vi må også legge til en collider til kua slik at vi kan oppdage kollisjoner med låven og strålen. Pass på å sjekke Er Trigger merk av i boksen Inspektør.
Legg til en skriptkomponent til kua og erstatt innholdet med følgende:
bruker UnityEngine; bruker System.Collections; offentlig klasse MoveCow: MonoBehaviour offentlig Vector3 moveSpeed; offentlig float spawnTime = 2f; offentlig float spawnDelay = 2f; // Bruk dette for initialisering tomt Start () moveSpeed = Vector3.left * Time.deltaTime; InvokeRepeating ("ChangeSpeed", spawnDelay, spawnTime); void ChangeSpeed () moveSpeed = ny Vector3 (Random.Range (-1, -2), 0, 0) * 0,05f; // Oppdatering kalles en gang per ramme ugyldig Oppdatering () transform.position + = moveSpeed;
De MoveCow
klassen animerer kua over skjermen ved hjelp av en variabel som heter moveSpeed
. De InvokeRepeating
Metode endrer koens hastighet for å få det til å sprette fra det øyeblikket det når sentrum av scenen. Dette gjør spillet mer utfordrende.
Med de nødvendige komponentene lagt til kua, er det på tide å konvertere det til en Prefab. Hva er en Prefab? La oss konsultere Unity Manual:
"En Prefab er en type ressurs-en gjenbrukbar GameObject som er lagret i Project View. Prefabs kan settes inn i et hvilket som helst antall scener, flere ganger per scene. Når du legger til en Prefab til en scene, oppretter du en forekomst av den. forekomster er knyttet til den originale Prefab og er i hovedsak kloner av det. Uansett hvor mange forekomster som finnes i prosjektet ditt, når du gjør endringer i Prefab vil du se endringen som er brukt på alle forekomster. "
Hvis du kommer fra Flash og ActionScript, bør dette høres godt kjent. For å konvertere kua til en prefab, dra kua fra hierarki panel til Eiendeler panel. Som et resultat, navnet i hierarki vil bli blå.
Konvertering av ku til prefabrikker gir oss mulighet til å gjenbruke den, noe som er praktisk fordi det allerede inneholder de nødvendige komponentene.
Spawner-skriptet er ansvarlig for at kyrene vises. Åpne MonoDevelop-eller din favoritt C # editor - og opprett et nytt skript:
bruker UnityEngine; bruker System.Collections; offentlig klasse Spawner: MonoBehaviour public float spawnTime = 2f; offentlig float spawnDelay = 2f; offentlig GameObject ku; // Bruk dette for initialisering tomt Start () InvokeRepeating ("Spawn", spawnDelay, spawnTime); void Spawn () / * Instantiate a cow * / GameObject klone = Instantiate (ku, transform.position, transform.rotation) som GameObject;
Vi kaller InvokeRepeating
Metode for å gyte kyr ved å bruke verdiene satt av spawnTime
og spawnDelay
. De GameObject
ku
er satt til offentlig og er opprettet ved hjelp av Inspektør. Klikk den lille prikken til høyre og velg kua Prefab.
For å instantiere kua prefab, bruker vi grafikken til kua vi har lagt til scenen for noen minutter siden. Velg den og fjern komponentene. Legg deretter til Spawner-skriptet.
Det er på tide å teste spillet. trykk Kommando + P
å spille spillet i Unity. Hvis alt fungerer som forventet, er du klar for de siste trinnene.
Når du er fornøyd med spillet ditt, er det på tide å velge Bygg innstillinger fra Fil menyen og klikk på Spillerinnstillinger knapp. Dette bringer opp Spillerinnstillinger i Inspektør panel der du kan justere parametrene for søknaden din.
Ved å bruke grafikken du opprettet tidligere, kan du nå lage et fint ikon for spillet ditt. Enhet viser deg de nødvendige størrelsene, som avhenger av plattformen du bygger for.
Plask eller startbilde vises når programmet startes.
Når prosjektet ditt er riktig konfigurert, er det på tide å besøke Bygg innstillinger og klikk på Bygge Knapp. Det er alt som trengs for å bygge spillet ditt for testing og / eller distribusjon.
Hvis du bygger for iOS, trenger du Xcode for å bygge den endelige applikasjonen binær. Åpne Xcode-prosjektet og velg Bygge fra Produkt Meny.
I denne opplæringen har vi lært om de nye 2D-egenskapene til enhet, kollisjonsdeteksjon og andre aspekter av spillutvikling med enhet.
Oppsøke resultatet og tilpasse det for å gjøre spillet ditt eget. Jeg håper du likte denne opplæringen og fant det nyttig.