Utvikle en 3D Skee ball spill med Unity

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.

  • importere 3D modeller

    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.