Develop en 3D Skee ball spill med Unity
26
Del
5
Del
Dette Cyber Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.
Hva du skal lage
Innledning
I denne opplæringen vil du lære hvordan du kan lage en mobil 3D-spill ved hjelp av C # og Unity. Målet med spillet er å kaste ballen inn i hullene ved hjelp av berøringsskjermen
Du vil lære om følgende aspekter av Unity spillutvikling i denne opplæringen.
swipe gest styrer
klasse kommunikasjon
fysikk krefter
trigger colliders
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:.
Menyen til 3D
2. Bygg Innstillinger
I neste trinn, du presentert med Unity brukergrensesnitt. Sette prosjektet opp for mobil utvikling ved å velge Bygg Settings
fra Fil
menyen og velge din foretrukne plattformen.
3. Enheter
Det første vi må gjøre etter å ha valgt målet plattformen er å velge størrelsen på grafikken vi skal bruke i spillet. Dette vil hjelpe oss med å velge en passende størrelse for 3D-teksturer og GUI 2D uten å gjøre kunstverket uskarpt eller bruke teksturer som er for store for målenheten. For eksempel trenger kunstverket til å ha en høyere oppløsning hvis du målretter en iPad med en retina-skjerm enn en Lumia 520.
iOS
iPad uten Retina: 1024px x 768px
iPad med Retina: 2048 piksler x 1536px
3,5 "iPhone /iPod Touch uten Retina: 320px x 480px
3,5" iPhone /iPod med Retina: 960 x x 640px
4 "iPhone /iPod Touch: 1136px x 640px
Android
Fordi Android er en åpen plattform, det er et bredt spekter av enheter, skjermoppløsninger, og pikseltetthet . Et par av de mer vanlige de er listet opp nedenfor
Asus Nexus 7 Tablet. 800px x 1280px, 216 ppi
Motorola Droid X: 854px x 480px, 228 ppi
Samsung Galaxy SIII: 720px x 1280px, 306 ppi
Windows Phone & Blackberry
Blackberry Z10: 720px x 1280px, 355 ppi
< li> Nokia Lumia 520: 400px x 800px, 233 ppi
Nokia Lumia 1520: 1080px x 1920px, 367 ppi
Merk at koden vi skal skrive i denne opplæringen kan være anvendes for å målrette en av plattformene.
4. Eksport Graphics
Avhengig av hvilke enheter du målretter, kan det hende du må konvertere grafikken 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 2D
knappen i Scene
panelet ikke er uthevet. Du kan også endre oppløsningen som blir vist i Spill
panel.
Du er deretter presentert med arbeidsområde paneler, som vi også bruker i denne opplæringen. Ta deg tid til å se på de viktigste grensesnittet paneler, for eksempel Scene
, Spill
, Hierarki
, Prosjekt
, Assets
, og Inspector
. Vi vil bruke dem ofte i denne opplæringen.
6. Spill Interface
Brukergrensesnittet i spillet er grei. Skjermbildet nedenfor gir deg en idé om kunstverket vi skal bruke, og hvordan den endelige brukergrensesnittet vil ende opp som ser. Du kan finne illustrasjoner og tilleggsressurser i opplæringen sin kildefilene på GitHub.
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 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å sørg for å ta en titt på Unity sin Script Reference for eksempler .
8. Lydeffekter
Jeg skal bruke en rekke lyder å forbedre audial opplevelsen av spillet. Lydeffektene er brukt i denne opplæringen ble hentet fra PlayOnLoop og Freesound.
9. 3D-modeller
For å lage spillet, trenger vi først å få et par 3D-modeller. Jeg anbefaler 3docean for høy kvalitet modeller og teksturer, men hvis du tester eller læring, deretter gratis modeller vil fungere like fint. Modellene i denne opplæringen ble lastet ned fra SketchUp 3D-galleriet der du kan finne et bredt utvalg av 3D-modeller.
Fordi Unity ikke gjenkjenner SketchUp filformat, trenger vi å konvertere den til noe Unity kan importere. Vi må først laste ned gratis versjon av SketchUp, som kalles SketchUp Make
Åpne 3D-modell i SketchUp Lag, velg Export >.; 3D Model
fra Fil
menyen, og velg Collada (* .dae)
. Velg et navn og sted, og klikk Lagre
. Dette vil opprette en fil og en mappe for 3D-modellen. Filen inneholder data for 3D-objektet mens mappen inneholder modellens teksturer. I neste trinn, vil vi importere modellen i Unity.
10. Import Eiendeler
Før vi begynner koding, må vi legge eiendelene til Unity prosjektet. Du kan gjøre dette én av flere måter:
Velg Import New Asset
fra Eiendeler
menyen
dra og slippe eiendeler i prosjektvinduet
legge til elementer i prosjektet eiendeler mappe
Etter å ha fullført dette trinnet, bør du se verdiene i prosjektet ditt mappe Eiendeler
i < b> Prosjekt
panel.
11. Kameraoppsett
Før vi fortsetter, la oss plassere hovedkameraet til å skape den utsikten vi ønsker. Velg hovedkameraet fra Hierarki
panel og justere Transform
verdier i Inspektør
å matche de som er vist nedenfor.
Ikke bekymre deg hvis du ikke ser noen endringer. Vi har ikke skapt noe for kameraet å se ennå.
12. Legge Lys
For våre objekter for å være synlig i 3D-verden, må vi legge lys til scenen. Velg Opprett Andre
fra GameObject
meny og velg Retnings Lys
. Dette vil skape et objekt som frembringer en stråle av lys. Endre Transform
verdier som vist i følgende skjermbilde for å gjøre det lyse opp området.
Lyset skal være synlig på scenen, som vist i følgende skjermbilde.
1. 3. Legg Alley Bowlers
The Alley bowlere er de viktigste komponentene i spillets scene. Spilleren vil bruke berøringsskjermen for å kaste en ball, sikter til et av hullene.
Modellen som brukes i denne opplæringen ble lastet ned og importeres ved hjelp av metoden beskrevet i Trinn 9
.
Selv om vi vil legge til tre modeller til scenen, stykket vil bare kommunisere med ett i sentrum. Dra og slipp en forekomst av modellen på Scene
eller Hierarki
panel og endre Transform
verdier til de som er vist i skjermbildet nedenfor.
< p> Bruk samme metode for å legge de to andre instanser eller kopiere første omgang ved å trykke på Kommando-D
. Bruk Transformasjonsverktøy
å posisjonere dem som vist nedenfor.
14. Opprett colliders
Med hoved smug på plass, er det på tide å legge colliders til modellen for å hjelpe oss med å flytte ballen over overflaten. Siden dette er en kompleks modell med mange grupper og polygoner, ville det ta oss lang tid å identifisere de ulike formene og legge en Collider til hver av dem. For å gjøre dette trinnet enklere, vil vi bruke en tredjeparts script for å automatisk lage en Collider som passer vår modell.
Skriptet vil legge til et nytt menyvalg som heter Wizards
til Unity meny. Velg modellen som du vil legge til Collider og velg Legg Mesh colliders
fra Wizards
menyen. Dette vil få opp følgende vindu.
Klikk på Legg colliders
lavt i høyre for å legge colliders til modellen. Dette vil skape en Mesh Collider
for hver gruppe eller et objekt av modellen. Du kan kontrollere dette ved å utvide den ballbowler
modell i Hierarki Hotell og velge et element.
15. Spotlights
Vi har lagt en lyskilde til vår 3D-verden, men vi trenger litt mer lys for å gjøre scenen mer interessant. Vi gjør dette ved å legge en rekke spotlights.
Velg Opprett Andre
fra GameObject
meny og velg Spotlight
. Dette vil skape et objekt som frembringer en lysstråle rettet mot ett sted. Den første spotlight vi legge trenger å belyse hullene. Endre Transform
verdier som vist i følgende skjermbilde.
16 Legg til et ekstra søkelys ved hjelp av følgende forvandle verdier.. Ball
Ballen er den viktigste komponenten i spillet. Spilleren vil bruke berøringsskjermen for å prøve og få ballen i et av hullene.
Ballen kommer til å være en enkel Sphere
primitive. Velg Opprett Andre > Sphere
fra GameObject
menyen for å skape den primitive og endre Transform
verdier i Inspector
som vist nedenfor.
Vi vil konvertere skuddet til Prefab
senere som det vil hjelpe oss med å lage forekomster av det i kode. Men først, la oss legge til en RigidBody
til det.
17. Ball RigidBody
For å oppdage en kollisjon med ballen, må vi legge ved en RigidBody
til det. For å legge til en, velger du Legg til Component
fra Inspector
panel, etterfulgt av Fysikk
> RigidBody
. Du kan la innstillingene på standardverdiene.
18. Ball Sensorer
Vi trenger å oppdage når ballen faller ned i et hull. Vi vil bruke Trigger colliders
for dette formålet. En trigger Collider er en fysikk objekt som oppdager en kollisjon med et annet objekt uten å reagere fysisk. Dette vil hjelpe oss oppdage når ballen går i hullet uten å gjøre det sprette tilbake.
Siden vi ikke trenger en faktisk modell eller 2D grafikk til å gjøre dette, vil vi lage en Tøm GameObject
. Velg GameObject > Lag Empty
fra menylinjen for å lage den. Klikk på Legg til Component
knappen i Inspector Hotell og velg Fysikk > Box Collider
. Dette vil legge en boks Collider til spillet objektet. Gjenta denne prosessen for hvert hull og sørg for å sjekke Trigger
sjekkheftet.
Plasser colliders som vist i skjermbildet nedenfor.
19. Scoreboard
For å vise spillets resultattavle, vil vi bruke Unity sin GUI Textures. Som standard er bilder som er importert til mappe Eiendeler
konvertert til Texture
forekomster som kan brukes til 3D-objekter. Vi må endre disse Texture
forekomster til GUI Texture
instanser for hvilke bilder vi vil bruke i spillets brukergrensesnitt.
Velg bildet du vil konvertere i Eiendeler
panel og åpne Inspector
. Velg GUI
fra Texture Type
menyen.
Du kan nå dra og slippe bildet til Scene
. Bildet vil alltid vises foran alle objektene på scenen og vil bli behandlet som en 2D-element.
20. Scoreboard Text
Inne på resultattavlen GUI-elementet, viser vi tall som viser spillerens score og antall baller spilleren har forlatt
Velg Opprett Andre >.; GUI Tekst
fra GameObject
menyen for å lage et tekstobjekt, plasser den i midten av GUI-elementet, og endre teksten i Hierarki
panelet til 00
. Følg samme fremgangsmåte for baller teksten å fullresultattavlen.
21. Legge Scripts
Det er på tide å skrive noen kode. Med brukergrensesnittet på plass, kan vi begynne å skrive den nødvendige koden for å legge samhandling til spillet. Dette gjør vi ved hjelp av skript, som kan festes til spillobjekter. Følg de neste trinnene for å lære hvordan du legger samhandling til det nivået vi har nettopp opprettet.
22. ThrowBall Class
Trinn 1: Erklærte Variabler
Vi vil begynne med å lage den klassen som håndterer det meste av spillmekanikken. Velg hovedkameraet, klikker du på Legg til Component
knappen i Inspector
panelet, og velg New Script
. Navn manuset ThrowBall og ikke glem å endre språket til C #. Åpne den nyopprettede filen og legge inn følgende kode
hjelp UnityEngine, bruker System.Collections; public class ThrowBall. MonoBehaviour {private Vector3 throwSpeed = new Vector3 (0, 0, 1100); offentlig GameObject ballReference; private Vektor2 startPos; private Vektor2 endPos; privat Vektor2 minDistance = new Vektor2 (0, 100); privat Vector3 ballPos = new Vector3 (0, 0.38f, -11.41f); offentlig bool ballOnStage = false; public int ballsLeft = 5; offentlig GUIText ballsTextReference; offentlig AudioClip throwSound;
Vi starter med å lage en rekke variabler som vi vil bruke i spillet. La oss ta en titt på hver enkelt
throwSpeed. Den innledende hastighet på ballen når den plasseres på smuget
ballReference: en referanse til ballen ferdighus, satt i inspektøren
startPos: start posisjonen til den første kontakten, brukes til å oppdage en swipe gest
endPos: endestilling av berørings
minDistance: minimum behov for bevegelse for finger for å bli vurdert en sveip
ballPos: innledende ball posisjon
ballOnStage: sant når en ball er for tiden på smug, for å forhindre at flere skudd samtidig
ballsLeft: antall gjenværende baller
ballsTextReference: referanse til baller tekstfeltet, satt i inspektøren
throwSound: henvisning til lyden spilt når ballen er kastet, satt i inspektøren
< h3> Trinn 2: Registrere berører
Følgende kodebiten viser begynnelsen av oppdatering metoden. Denne metoden registrerer om brukeren berøre skjermen
void Update () {if (Input.touchCount > 0). {Touch berørings = Input.GetTouch (0);
Vi sjekker touchCount eiendommen av Input klasse for å få den nåværende antall berøringer på skjermen. Hvis touchCount er større enn 0, holder vi en referanse til den første Touch objektet. Vi vil bruke dette objektet senere
Trinn 3:. Oppdager en Swipe
Med en referanse til Touch objekt, har vi tilgang til sin fase eiendom, som hjelper oss å finne ut om kontakten har startet, flyttet, eller avsluttet.
Fordi vi trenger et utgangspunkt for å oppdage en swipe gest, må vi ha tilgang til startpunktet for Touch objektet, som vi har tilgang til når Touch objektets fasen er lik TouchPhase.Began. Posisjonen til Touch objektet er lagret i sin posisjon eiendom.
Vi har tilgang til endepunktet for den gesten ved å gå til Touch objektets posisjon eiendom når sin fase eiendom er lik TouchPhase.Ended.
Hvis (touch.phase == TouchPhase.Began) {startPos = touch.position;} if (touch.phase == TouchPhase.Ended) {endPos = touch.position;} /* sammenlign stillinger * /if (endPos.y - startPos .Y > = minDistance.y & & ballOnStage &! & ballsLeft > 0) {
Nå som vi har koordinatene til start og endepunkt av touch, kan vi beregne avstanden og sjekke om det er en gyldig swipe gest ved å sammenligne den med den verdien som er lagret i minDistance objektet.
Vi har også inspisere verdien av ballOnStage å kontrollere om en ball er allerede på scenen og vi sørge for at spilleren har nok baller igjen å fortsette å spille. Antall kuler igjen lagres i ballsLeft variable
Trinn 4:. Oppdager Skjerm Zone
Skjerm soner er opprettet for å beregne hvor den horisontale posisjonen til ballen kommer til å være når Ballen er opprettet. Vi gjør dette for å ha kontroll over ballens posisjon og det forteller oss hvor ballen kommer til å ende, og hindre kaste den ut av banen. Vi deler skjermen i tre deler som du kan se nedenfor.
Den matte vi bruker er ganske enkelt som du kan se i koden blokken nedenfor. Vi deler skjermen i tre like deler og sjekke hvilken del inneholder brukerens berørings
/* Divide skjermen i 3 deler * //* Venstre * /if (touch.position.x >. = 0 & & touch.position.x < = Screen.width /3) {ballPos.x = Random.Range (-0.87f, -0.35f);} /* Center * /else if (touch.position.x > Screen.width /3 & & touch.position.x < = (Screen.width /3) * 2) {ballPos.x = Random.Range (-0.35f, 0.22f);} /* Høyre * /else if (touch.position.x > (Screen.width /3) * 2 & & touch.position.x < = Screen.width) {ballPos.x = Random.Range (0.22f, 0.36f);}
Etter å detektere riktig skjermsone, beregner vi en tilfeldig posisjon mellom starten og slutten av sonen og tilordne den posisjonen til ballPos variable
Trinn 5: kaste ballen
<. p> Etter å bestemme startposisjonen av ballen, skaper vi en ny GameObject forekomst ved hjelp av instantiate metoden, passerer i ballReference og ballPos variabler
GameObject ball = instantiate (ballReference, ballPos, transform.rotation) som GameObject;. ball .rigidbody.AddForce (throwSpeed);
Med ballen på scenen, legger vi en kraft til å gjøre det gå gjennom riktig smug. Vi gjør dette ved å påberope seg AddForce metoden på ballens rigidbody eiendom, passerer i throwSpeed variable vi erklært tidligere
Trinn 6:. Spille en Sound Effect
Vi spiller en lydeffekt når ballen kastes i smug. Den neste kodelinje tar seg av det. For dette tot arbeid, må du huske å sette throwSound variabel i Inspector
AudioSource.PlayClipAtPoint (throwSound, transform.position);
Trinn 7:. Tilbake swipe Variabler
Etter å kaste ballen, må vi nullstille variabler som gjenkjenner spillerens innslag. Ikke gjør dette vil resultere i flere swipes å bli oppdaget. Vi har også satt den ballOnStage variabelen til true, hindre at en annen ball er kastet samtidig
endPos = new Vektor2 (0, 0);. StartPos = new Vektor2 (0, 0); ballOnStage = true;
Dette fullfører ThrowBall klassen. Gjennomføringen av klassen skal se ut th vist under
hjelp UnityEngine, bruker System.Collections; public class ThrowBall. MonoBehaviour {private Vector3 throwSpeed = new Vector3 (0, 0, 1100); offentlig GameObject ballReference; private Vektor2 startPos; private Vektor2 endPos; privat Vektor2 minDistance = new Vektor2 (0, 100); privat Vector3 ballPos = new Vector3 (0, 0.38f, -11.41f); offentlig bool ballOnStage = false; public int ballsLeft = 5; offentlig GUIText ballsTextReference; offentlig AudioClip throwSound; void Update () {if (Input.touchCount > 0) {Touch berørings = Input.GetTouch (0); if (touch.phase == TouchPhase.Began) {startPos = touch.position; } If (touch.phase == TouchPhase.Ended) {endPos = touch.position; } /* Sammenlign stillinger * /if (endPos.y - startPos.y >! = MinDistance.y & & ballOnStage & & ballsLeft > 0) {/* Divide skjermen i 3 deler * //* Venstre * /if (touch.position.x > = 0 & & touch.position.x < = Screen.width /3) {ballPos.x = Random.Range (-0.87f, -0.35f); } /* Center * /else if (touch.position.x > Screen.width /3 & & touch.position.x < = (Screen.width /3) * 2) {ballPos.x = Random. Range (-0.35f, 0.22f); } /* Høyre * /else if (touch.position.x > (Screen.width /3) * 2 & & touch.position.x < = Screen.width) {ballPos.x = Random.Range ( 0.22f, 0.36f); } GameObject ball = instantiate (ballReference, ballPos, transform.rotation) som GameObject; ball.rigidbody.AddForce (throwSpeed); AudioSource.PlayClipAtPoint (throwSound, transform.position); endPos = new Vektor2 (0, 0); startPos = new Vektor2 (0, 0); ballOnStage = true; }}}}
23. BallSensor Class
Følgende skript inneholder gjennomføring av BallSensor klassen og er festet til kule sensorer, håndtering av eventuelle kollisjoner med kule sensorer
Trinn 1:. Erklærte Variabler
Vi starter med å erklære en variabel som heter sensorValue, som lagrer antall poeng ballen sensor vil legge til stillingen. Fordi ballen sensorene er alle like ferdighus, erklærer vi denne variabelen som offentlig. Dette vil gi oss mulighet til å sette denne verdien i redigeringsprogrammet ved hjelp av Inspector
hjelp UnityEngine, bruker System.Collections; public class BallSensor. MonoBehaviour {public int sensorValue = 0; offentlig GUIText scoreReference; offentlig GameObject alertReference;
De andre to variablene butikk referanser til score og varselspillobjektene, som vi også satt i Unity Inspector
. Disse referansene vil bli brukt til å øke poengsummen og vise varsling når spillet slutter
Trinn 2:. Ødelegge Ball
OnTriggerEnter metoden oppdager når en kollisjon har oppstått og aksepterer Collider objekt sensoren er å kollidere med, ballen i dette tilfellet. Når en kollisjon blir oppdaget, ballen er ødelagt for å hindre den fra å sprette og potensielt fallende i et annet hull
annullere OnTriggerEnter (Collider andre) {Destroy (other.gameObject);
Trinn 3:. Aktivere Throw Anmeldelser
Etter å ødelegge ballen, er vi sikker på at det ikke er på smuget lenger. Dette betyr at vi kan kaste uten å utløse uønsket atferd med en annen ball. Følgende kodelinje kommuniserer med ThrowBall klassen og får ballOnStage variabel, sette den til false
Camera.main.GetComponent. ≪ ThrowBall >. () BallOnStage = false;
La oss ta en nærmere titt på hvordan vi tilgang til en variabel deklarert i en annen klasse. Som du kan fortelle nå, en måte å få tilgang til en variabel eller objekt erklært utenfor gjeldende klassen er å sette en referanse variabel ved hjelp av offentlige eller [SerializeField], og deretter bruke Inspektør
å gi den en verdi .
Den offentlige søkeord spiller en viktig rolle i dette. Bruke det gjør variabelen ikke bare tilgjengelig fra Inspector
, men også gjennom koden. For å gjøre dette, må vi først tilgang til GameObject
som har Script Component
knyttet til det, som er det Hovedkamera
i dette tilfellet. Anmeldelser
Det er bare ett kamera i dette spillet, som gjør ting enklere. Vi kan få en henvisning til hovedkameraet gjennom Camera.main. Bruke GetComponent vi får manuset festet til kameraet, ved hjelp av navnet på klassen. Vi har da tilgang til det offentlige variabel kalt ballOnStage
Trinn 4:.. Endre Score
Følgende kode blokk oppdaterer score, ved hjelp av referansen vi erklært tidligere
scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString ();
Vi konvertere verdien som er lagret i scoreReference til et heltall og legge den til verdien som er lagret i sensorValue. Vi konverterer resultatet til en streng og tilordne den til teksten eiendom scoreReference
Trinn 5:. Oppdatere Øvrige Balls
I dette trinnet reduseres vi antallet gjenværende baller. Vi bruker metoden beskrevet i Trinn 3
å få tilgang til ballsLeft og ballsTextReference variablene i ThrowBall class.
Camera.main.GetComponent<ThrowBall>().ballsLeft--;Camera.main.GetComponent<ThrowBall>().ballsTextReference.text . = Camera.main.GetComponent < ThrowBall > () ballsLeft.ToString ();
Vi minske verdien lagret i ballsLeft og oppdatere teksten eiendom ballsTextReference
Trinn 6: Ser etter. Game Over
Spillet er over når spilleren går tom for tilgjengelige bilder. De neste linjer med kode sjekke om ballsLeft variabelen er lik 0 og skape et varsel om sant. Vi deretter ringe Invoke metode for å påberope seg Reload metoden, som starter spillet ved omlasting den aktuelle scenen.
Den andre parameteren i Invoke metoden definerer forsinkelsen med hvilken Reload metoden vil bli påberopt. Vi gjør dette for å gi spilleren litt tid før vi starter et nytt spill
om. (Camera.main.GetComponent < ThrowBall >. () BallsLeft == 0) {instantiate (alertReference, ny Vector3 (0.5f , 0.5f, 0), transform.rotation); Påkall ("Last", 3); }}
Trinn 7: Oppgradere Spillanmeldelser
Dette er den siste delen av BallSensor klassen. I Reload metoden, kaller vi LoadLevel på Application klasse og laste dagens nivå, nullstille alle objektene og variabel til opprinnelig tilstand
annullere Reload () {Application.LoadLevel (Application.loadedLevel.); }}
Dette er hva klassen ser ut når du er ferdig
bruker UnityEngine, bruker System.Collections; public class BallSensor. MonoBehaviour {public int sensorValue = 0; offentlig GUIText scoreReference; offentlig GameObject alertReference; void OnTriggerEnter (Collider andre) {Destroy (other.gameObject); Camera.main.GetComponent < ThrowBall >. () BallOnStage = false; scoreReference.text = (int.Parse (scoreReference.text) + sensorValue) .ToString (); Camera.main.GetComponent < ThrowBall > () ballsLeft--.; Camera.main.GetComponent < ThrowBall > () ballsTextReference.text = Camera.main.GetComponent. ≪ ThrowBall > () ballsLeft.ToString (.); if (Camera.main.GetComponent < ThrowBall >. () ballsLeft == 0) {instantiate (alertReference, ny Vector3 (0.5f, 0.5f, 0), transform.rotation); Påkall ("Last", 3); }} Void Reload () {Application.LoadLevel (Application.loadedLevel); }}
24. Testing
Det er på tide å teste spillet. Trykk Kommando-P
å spille spillet i Unity. Hvis alt fungerer som forventet, da er du klar for de siste trinnene.
25. 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 data som inkluderer skaperen eller Selskapet, app oppløsning og visningsmodus, gjengivelsesmodus (CPU, GPU), enhets OS kompatibilitet, etc. Konfigurer innstillingene i henhold til de enhetene du målretter og butikken eller marked hvor du har tenkt å publisere app.
< h2> 26. 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å.
27. Bygg og Spill
Når prosjektet er riktig konfigurert, er det på tide å revidere Bygg Innstillinger Kjøpe og klikk på bygge
Button. Det er alt det tar å bygge spillet for testing og /eller distribusjon.
Konklusjon
I denne opplæringen, har vi lært å bruke fysikk krefter, sveiper gester, klasse kommunikasjon, og andre aspekter av spillet utvikling i 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.