Create en Fruit Ninja inspirert spill med Unity 
 67 
 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 å kutte frukten som vises på scenen ved hjelp av berøringsskjermen 
 
 Du vil lære om følgende aspekter av Unity spillutvikling i denne opplæringen. 
 
swipe bevegelser
linje gjengi
fysikk krefter
2D sprites
 Brukergrensesnittet av 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. 
 
 1. Prosjektet Setup 
 
 Trinn 1: Opprette en ny 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 
 
 Trinn 2: Konfigurer Build 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 
 
 Trinn 3:. Artwork 
 
 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 brukes til å målrette noen av plattformene 
 
 Trinn 4:. Eksporten 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 
 
 Trinn 5:. Konfigurer Unity s Brukergrensesnitt 
 
 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 
 
 Trinn 6:. Programmeringsspråk 
 
 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 . 
 
 2. Ressurser 
 
 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. 
 
 3D-modeller 
 
 For å lage spillet, må 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. 
 
 3. 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. 
 
 4. Sette opp Kamera & Lighting 
 Trinn 1: Sette opp kameraet 
 
 I dette trinnet, vi 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å 
 Trinn 2:. Sette opp lys 
 
 For våre objekter for å være synlig i 3D-verden, må vi legge lys til scene. 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 belyse scenen. 
 
 Lyset skal være synlig på scenen, som vist i følgende skjermbilde. 
 
 5. Legg Bakgrunn 
 
 Vi vil bruke en  Sprite 
 tekstur som vår bakgrunn. Som standard er bilder som er importert til  mappe Eiendeler 
 konvertert til  Texture 
 forekomster som kan brukes til 3D-objekter. Vi trenger å endre disse  Texture 
 forekomster til  Sprite Texture 
 instanser for bildet vi ønsker å bruke som bakgrunn. 
 
 Velg bildet du ønsker å konvertere i < b> Eiendeler 
 panel og åpne  Inspector 
. Velg  Sprite 
 fra  Texture Type 
 menyen. 
 
 Dra og slipp bakgrunnen inn i  Hierarki 
 panel. Det vises automatisk i  Scene 
 panel. Juster  Transform 
 verdier i  Inspector 
 som vist i neste skjermbilde. 
 
 6. Opprett Score GUI 
 
 For å vise spillets poengsum, vil vi bruke Unity  GUI Tekst Hotell og en importert 3D-modell 
 
 Trinn 1:. Legge til Apple Modellen 
 
 Velg den importerte 3D-modell av ditt valg fra  Eiendeler 
 panel og dra og slipp den på  Scene 
. Jeg kommer til å bruke et eple modell. Juster  Transform 
 verdier i  Inspektør 
 å matche de som er vist nedenfor. 
 
 Dette vil plassere eplet øverst til venstre på skjermen. 
 
 Trinn 2: Legge GUI Text 
 
 Sammen med eple-modell, viser vi et tall som angir spillerens poengsum. Dette er antall frukter spilleren har kuttet 
 
 Velg  Opprett Andre >.; GUI Tekst 
 fra  GameObject 
 menyen for å lage et tekstobjekt, plasser den på høyre side av eplet modell, og endre teksten i  Inspector 
 panelet til  0 
. 
 
 Du kan bygge en tilpasset skrift ved å importere den i  mappe Eiendeler Kjøpe og endre  Font 
 eiendom av teksten i  Inspektør 
. 
 
 7. Opprett Timer GUI 
 
 Vi vil bruke en timer for å indikere når spillet er over. Det er sammensatt av en  GUI Texture 
 viser et ikon og en  GUI Tekst 
 viser gjenstående tid 
 
 Trinn 1:. Legge på Klokke-ikonet 
 
 Å legge klokkeikonet, velger du bildet du vil bruke i  Eiendeler 
 panel og åpne  Inspector 
. Velg  GUI 
 fra  Texture Type 
 menyen for å konvertere den til en GUI Texture. Dra og slipp bildet til  Scene Hotell og endre forvandle verdier til de som er vist nedenfor 
 
 Scenen skal nå se slik ut 
 
 Trinn 2:.. Legge til GUI Text 
 
 Gjenta trinnene for å legge til stillingen teksten å legge timeren tekst. Ikke glem å sette tekst til riktig tid. 
 
 8. Alert Prefab 
 
 varsling er en  GUI Texture 
 at vi vil vise når nedtellingen når  0 
. Det vil vise en game over melding på midten av skjermen. 
 
 For å opprette en våken, konvertere varsling bilde til en  GUI Texture 
 bruke  Inspector 
. Dra den fra  Hierarki 
 panelet til  Eiendeler 
 panelet for å konvertere den til en  Prefab 
. 
 
 9. Timer Class 
 
 La oss nå implementere Timer klasse. Velg  Tid GUI Tekst 
, klikker du på  Legg til Component 
 knappen i  Inspector 
 panelet, og velg  New Script 
. Navn skriptet  Timer Hotell og ikke glem å endre språket til C #. Åpne den nyopprettede filen og følg de neste trinnene 
 
 Trinn 1:.. Erklærer Variabler 
 
 Vi starter med å lage en rekke variabler som vi vil bruke i Timer klassen 
 privat GUIText timeTF; offentlig GameObject alertReference 
 La oss ta en titt på hver av variablene 
 
 timeTF: en referanse til klokke GUI Text 
 
 alertReference: en referanse. til varsling prefab 
 
 Vi vil bruke disse referansene for å få tilgang til de tids og varsling spill objekter og endre sine verdier. Angi varsel ferdighus i  Inspector 
 
 Trinn 2:. Setup 
 
 Med variablene erklært, setter vi timeTF verdi ved å gå til guiText eiendom av nåværende spillet objektet . Dette vil la oss endre teksten verdien senere 
 
 Vi har også ringe InvokeRepeating metode, som vil påberope ReduceTime metoden hvert sekund 
 annullere Start () {timeTF = gameObject.guiText..; InvokeRepeating ("ReduceTime", 1, 1);} 
 Trinn 3: Gjennomføre ReduceTime 
 
 ReduceTime metoden er ansvarlig for å oppdatere timeren tekst og vise varselmeldingen. Spillet er over når den tid kommer  0 
. . Legg til følgende kode blokken til Timer klassen 
 annullere ReduceTime () {if (timeTF.text == "1") {/* Alert * /Time.timeScale = 0; Instantiate (alertReference, ny Vector3 (0.5f, 0.5f, 0), transform.rotation); audio.Play (); . GameObject.Find ("AppleGUI") GetComponent < AudioSource > () Stopp (.); } TimeTF.text = (int.Parse (timeTF.text) - 1) .ToString ();} 
 Vi starter med testing hvis tiden er i ferd med å ta slutt. Hvis det stemmer, vi pause spillet ved å endre tidsskalaen eiendommen til  0 
, opprette en forekomst av varselet, og spille spillet over lyden. 
 
 Hvis tiden ikke er i ferd med å avslutte, vi bare redusere sin verdi etter  1 
. For å gjøre dette, bruker vi int.Parse metode for å konvertere tid strengen til et nummer, subtrahere  1 
, og kaller toString på den for å konvertere resultatet tilbake til en streng. 
 
 Trinn 4: Last Metode 
 
 Dette er den siste delen av Timer 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 hele klassen skal se ut når du er ferdig 
 bruker UnityEngine, bruker System.Collections; public class Timer:. MonoBehaviour {private GUIText timeTF; offentlig GameObject alertReference; ugyldig Start () {timeTF = gameObject.guiText; InvokeRepeating ("ReduceTime", 1, 1); } Void ReduceTime () {if (timeTF.text == "1") {/* Alert * /Time.timeScale = 0; Instantiate (alertReference, ny Vector3 (0.5f, 0.5f, 0), transform.rotation); audio.Play (); . GameObject.Find ("AppleGUI") GetComponent < AudioSource > () Stopp (.); } TimeTF.text = (int.Parse (timeTF.text) - 1) .ToString (); } Void Reload () {Application.LoadLevel (Application.loadedLevel); }} 
 10. Apple Prefab 
 
 Apple er en av de viktigste elementene i spillet, og det er en av de interaktive objekter på skjermen. Spilleren er i stand til å bruke enhetens berøringsskjermen for å skjære eple, øke sin poengsum. 
 
 Dra eple fra  Eiendeler 
 panelet til  Scene 
. Ikke bekymre deg om sin posisjon, fordi vi vil konvertere den til en  Prefab 
 i et øyeblikk, og ta den ut av  Hierarki 
 
 Trinn 1:. Legg Rigidbody 
 
 For å oppdage en kollisjon med eple, må vi legge til en  Rigidbody 
 til det. For å legge til en, velger du  Legg til Component 
 fra  Inspector 
 panel og velg  Fysikk > Rigidbody 
. Du kan la innstillingene på standardverdiene 
 
 Trinn 2:. Legg Box Collider 
 
 Vi må også legge til en boks Collider til eple å oppdage kollisjoner. Dette Collider vil definere Apples hit området. Klikk på  Legg til Component 
 knappen i  Inspector 
 panel, velger du  Fysikk > Box Collider 
, og endre dens verdier som vist i skjermbildet nedenfor. 
 
  Scene 
 panel, en grønn boks skal vises rundt eple, som representerer den boksen Collider vi nettopp lagt . 
 
 11. Splash Prefab 
 
 splash ferdighus vil bli brukt som en visuell effekt for når frukten er oppskåret av spilleren. Det vil dukke opp på scenen for hver frukt spilleren kutt og forsvinner sakte over tid. Konvertere bildet til en  Sprite 
 som beskrevet tidligere, og legge den til  Scene 
. 
 
 Legg et manus til den, og dra den tilbake til  Eiendeler 
 panelet for å opprette en  Prefab 
. Åpne den nyopprettede klassen. 
 
 12. Splash Class 
 
 Splash klassen håndterer bildene skapes når frukten er oppskåret 
 
 Trinn 1:. Erklærer Variabler 
 
 Disse variablene er brukt til å beregne og sette en alpha verdien til splash ferdighus. Ved å endre sin alpha eiendommen kan vi visne ferdighus som tiden går 
 privat Color randomAlpha; privat float currentAlpha; 
 Trinn 2:. Setup 
 
 I denne metoden beregner vi en tilfeldig alpha verdi fra  0,3 
 til  0,5 Hotell og lagre verdien i randomAlpha variabel. Vi deretter sette den resulterende alfa til fargen eiendom av spillet objektet. 
 
 I den siste linjen med kode påberope vi den metoden som vil redusere denne verdien hvert  300 
 millisekunder, noe som skaper en fading effekt . 
 void Start () {randomAlpha = ny farge (1, 1, 1, Random.Range (0.3f, 0.5f)); gameObject.renderer.material.color = randomAlpha; InvokeRepeating ("ReduceAlpha", 0.3f, 0.3f);} 
 Trinn 3: Redusere Alpha and Destroy 
 
 For å redusere alfa, må vi først få den nåværende verdi. De currentAlpha variable lagrer denne verdien. Deretter trekke vi  0,1 
 fra denne verdien og tilordne den nye alpha til spillet objektet. Bildet fjernes når det er nesten usynlig 
 annullere ReduceAlpha () {currentAlpha = gameObject.renderer.material.color.a.; if (gameObject.renderer.material.color.a < = 0,1f) {Destroy (gameObject); } Else {gameObject.renderer.material.color = ny farge (1, 1, 1, currentAlpha - 0,1f); }} 
 Dette er hva Splash klassen ser ut 
 hjelp UnityEngine, bruker System.Collections; public class Splash. MonoBehaviour {private Color randomAlpha; private float currentAlpha; ugyldig Start () {randomAlpha = ny farge (1, 1, 1, Random.Range (0.3f, 0.5f)); gameObject.renderer.material.color = randomAlpha; InvokeRepeating ("ReduceAlpha", 0.3f, 0.3f); } Void ReduceAlpha () {currentAlpha = gameObject.renderer.material.color.a; if (gameObject.renderer.material.color.a < = 0,1f) {Destroy (gameObject); } Else {gameObject.renderer.material.color = ny farge (1, 1, 1, currentAlpha - 0,1f); }}} 
 13. Apple Class 
 
 Med vår splash ferdighus laget, vi kan nå fortsette med Apple klassen. Denne klassen vil håndtere handlinger, for eksempel dueller, oppdatering av score, og fjerne eple fra scenen 
 
 Trinn 1:. Erklærer Variabler 
 
 Tre variabler deklareres i Apple-klasse: < .no> 
 splashReference: referanse til splash prefab 
 
 randomPos: posisjon for sprut prefab 
 
 scoreReference: referanse til stillingen GUI tekst product: [SerializeField ] private GameObject splashReference; privat Vector3 randomPos = new Vector3 (Random.Range (-1, 1), Random.Range (0.3f, 0.7f), Random.Range (-6.5f, -7.5f)); privat GUIText scoreReference; 
 Trinn 2: Få Score Reference 
 
 For å få en henvisning til den stillingen teksten vi bruke Finn metoden. Denne metoden søker de aktive spillobjektene og returnerer objektet vi leter etter, poengsummen  GUI Tekst 
 i dette tilfellet. 
 Annullere Start () {scoreReference = GameObject.Find ("Resultat"). guiText;} 
 Med scoreReference variable sett, er vi nå i stand til å øke sin verdi når en frukt er skiver 
 
 Trinn 3: ødelegge Når Offstage 
 
 I Update. metode, sjekker vi om frukt er ikke lenger synlig på skjermen ved å gå sin y posisjon og fjerne den hvis sant. . Dette hjelper oss slippe minne ved å ødelegge ubrukte spillobjektene 
 annullere Update () {/* Fjern frukt hvis ut av syne * /if (gameObject.transform.position.y < -36) {Destroy (gameObject); }} 
 Trinn 4: Handle Kollisjoner 
 
 Den neste koden bruker OnCollisionEnter metoden for å oppdage når frukten er oppskåret av spilleren. Når dette skjer, vi spiller kuttet lyden og fjerne frukten. Deretter oppretter vi en ny forekomst av splash prefab og oppdatere poengsum 
 annullere OnCollisionEnter (Collision andre) {if (other.gameObject.name == "Line") {Camera.main.GetComponent. ≪ AudioSource > () .Spille(); Ødelegge (gameObject); Instantiate (splashReference, randomPos, transform.rotation); /* Oppdater Score * /scoreReference.text = (int.Parse (scoreReference.text) + 1) .ToString (); }} 
 Dette er hva hele Apple klassen ser ut 
 hjelp UnityEngine, bruker System.Collections; public class Apple. MonoBehaviour {[SerializeField] private GameObject splashReference; privat Vector3 randomPos = new Vector3 (Random.Range (-1, 1), Random.Range (0.3f, 0.7f), Random.Range (-6.5f, -7.5f)); private GUIText scoreReference; ugyldig Start () {scoreReference = GameObject.Find ("Resultat") guiText.; } Void Update () {/* Fjern frukt hvis ut av syne * /if (gameObject.transform.position.y < -36) {Destroy (gameObject); }} Void OnCollisionEnter (Collision andre) {if (other.gameObject.name == "Line") {Camera.main.GetComponent < AudioSource >. () Spill (); Ødelegge (gameObject); Instantiate (splashReference, randomPos, transform.rotation); /* Oppdater Score * /scoreReference.text = (int.Parse (scoreReference.text) + 1) .ToString (); }}} 
 14. FruitSpawner Class 
 
 FruitSpawner klasse instantiates og flytter fruktene til scenen. Det er festet til hovedkameraet 
 
 Trinn 1:.. Erklærer Variabler 
 
 Dette er variabler deklarert i denne klassen 
 [SerializeField] private GameObject appleReference; privat Vector3 throwForce = new Vector3 (0, 18, 0); 
 
 appleReference: referanse til apple prefab 
 
 throwForce: kraften brukes til å presse frukt oppover 
 
 Trinn 2: Invoke spawn 
 
 I de neste linjer med kode, kaller vi den InvokeRepeating metode for å påberope seg SpawnFruit metoden hvert sjette sekund. Dette vil legge nye frukter til scenen hvert sjette sekund, som gir spilleren tid til å skjære dem før frukten faller til bunnen av scenen 
 ugyldig Start () {InvokeRepeating ("SpawnFruit", 0.5f, 6).; } 
 Trinn 3: SpawnFruit Metode 
 
 SpawnFruit metoden skaper fruktene og presser dem oppover for spilleren å kutte. Vi bruker en for uttalelse på å bruke fruktene, plassere dem tilfeldig på scenen og bruke en fysikk kraft ved hjelp av addForce metoden 
 annullere SpawnFruit () {for (byte i = 0; i < 4; i ++). {GameObject frukt = instantiate (appleReference, ny Vector3 (Random.Range (10, 30), Random.Range (-25, -35), -32), Quaternion.identity) som GameObject; fruit.rigidbody.AddForce (throwForce, ForceMode.Impulse); }} 
 Dette er den komplette FruitSpawner klassen 
 hjelp UnityEngine, bruker System.Collections; public class FruitSpawner. MonoBehaviour {[SerializeField] private GameObject appleReference; privat Vector3 throwForce = new Vector3 (0, 18, 0); void Start () {InvokeRepeating ("SpawnFruit", 0.5f, 6); } Void SpawnFruit () {for (byte i = 0; i < 4; i ++) {GameObject frukt = instantiate (appleReference, ny Vector3 (Random.Range (10, 30), Random.Range (-25, -35) , -32), Quaternion.identity) som GameObject; fruit.rigidbody.AddForce (throwForce, ForceMode.Impulse); }}} 
 15. Berøringskontroller 
 
 La oss nå implementere berøringskontrollene. Spilleren vil være i stand til å bruke berøringsskjermen for å kutte frukt. Vi vil synliggjøre dette ved å tegne en linje ved hjelp av LineRenderer klassen og deretter sjekke om frukten kolliderer med spillerens swipe gest 
 
 Trinn 1:. Erklærer Variabler 
 
 Vi starter med å lage noen variabler. 
 
 c1, c2: disse variablene sette farge på linjen 
 
 lineGO: dette spillet objektet vil holde linjen renderer 
 
 lineRenderer: linjen renderer eksempel 
 
 i: en int verdi brukes til å angi størrelse og indeks over linjen 
 offentlig Color c1 = Color.yellow; offentlig Color c2 = Color.red; privat GameObject lineGO; privat LineRenderer lineRenderer; private int i = 0; 
 Trinn 2: Oppsett 
 
 I Start-metoden, har vi satt opp de nødvendige gjenstander og egenskaper for linjen. Vi begynner med å lage en ny GameObject eksempel inneholder LineRenderer. Deretter bruker vi noen av linjen renderer metoder for å angi hvordan det kommer til å se 
 annullere Start () {lineGO = new GameObject ("Line").; lineGO.AddComponent < LineRenderer > (); lineRenderer = lineGO.GetComponent < LineRenderer > (); lineRenderer.material = new Material (Shader.Find ("Mobile /Partikler /Additiv")); lineRenderer.SetColors (c1, c2); lineRenderer.SetWidth (0.3F, 0); lineRenderer.SetVertexCount (0);} 
 De fleste eiendommer som ligger i denne blokken med kode er enkle å forstå, SetColor endrer fargen på linjen og SetWidth setter sin bredde. Vær spesielt oppmerksom på SetVertexCount linje. Denne metoden angir antall poeng av linjen. Ved å kalle denne fremgangsmåte med et høyere antall punkter, kan vi øke størrelsen av linjen. Dette vil bli klarere i neste trinn 
 
 Trinn 3:. Lag Linje 
 
 Linjen er skapt i Update metoden. Vi først teste om spilleren er å berøre skjermen ved å hente den touchCount eiendommen av Input klassen. Dersom eiendommen er større for at  0 
, betyr det at det er minst en finger på enhetens skjerm. 
 
 Vi holder en referanse til Touch gjenstand for enklere tilgang og sjekke hvilken fase det er i dag i. Vi trenger det for å være i Flyttet fase for å kunne opprette linjen. 
 
 Hvis spilleren beveger fingeren over skjermen, kan vi begynne å lage et linjestykke på den posisjonen. . Vi påkalle SetVertexCount metoden igjen for å øke det maksimale antall segmenter av linjen 
 void Update () {if (Input.touchCount > 0) {Touch berørings = Input.GetTouch (0); if (touch.phase == TouchPhase.Moved) {lineRenderer.SetVertexCount (i + 1); Vector3 mPosition = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 15); lineRenderer.SetPosition (i, Camera.main.ScreenToWorldPoint (mPosition)); i ++; }}} 
 Trinn 4: Legg colliders 
 
 Med linjen på plass, legger vi en Collider til det å hjelpe oss med å finne en kollisjon med noen av fruktene. Følgende kodebit skaper og legger en boks Collider til linjen ved hjelp av AddComponent metode og setter sin posisjon til lineRenderer nåværende posisjon. Den siste linjen med kode endrer standardstørrelsen på Collider å matche linje størrelse 
 BoxCollider bc = lineGO.AddComponent. ≪ BoxCollider > (); bc.transform.position = lineRenderer.transform.position; bc.size = new Vector3 (0,1f, 0,1f, 0,1f); 
 Trinn 5: Ta Linje 
 
 Vi fjerner linjen når spilleren er ikke lenger berøre skjermen. Dette forhindrer eventuelle uønskede kollisjoner med eplene. 
 
 I neste kodebiten, sjekker vi om den nåværende fasen av Touch objektet er avsluttet og satt toppunktet telling av lineRenderer til  0 
. Dette vil fjerne dagens linjesegmenter, men det ødelegger ikke objektet, slik at vi kan bruke det senere. Vi tilbakestiller også i variable for å tillate senere bruk 
 if (touch.phase == TouchPhase.Ended) {/* fjern linje * /lineRenderer.SetVertexCount (0).; i = 0;} 
 Trinn 6: Destroy colliders 
 
Når linjen er fjernet, vi trenger ikke lenger straffe colliders knyttet til den. Vi først opprette en rekke BoxCollider gjenstander, lagring seksten colliders av linjen spillet objektet. Vi så løkken over rekken, ødelegge hver boks Collider Twitter /* Fjern Linje colliders * /BoxCollider [] lineColliders = lineGO.GetComponents. ≪ BoxCollider > (); foreach (BoxCollider bi lineColliders) {Destroy (b);}
 La oss ta en titt på den fullstendige gjennomføringen av LinesHandler klassen 
 hjelp UnityEngine, bruker System.Collections; public class LinesHandler. MonoBehaviour {public Color c1 = Color.yellow; offentlig Color c2 = Color.red; private GameObject lineGO; private LineRenderer lineRenderer; private int i = 0; void Start () {lineGO = new GameObject ("Line"); lineGO.AddComponent < LineRenderer > (); lineRenderer = lineGO.GetComponent < LineRenderer > (); lineRenderer.material = new Material (Shader.Find ("Mobile /Partikler /Additiv")); lineRenderer.SetColors (c1, c2); lineRenderer.SetWidth (0.3F, 0); lineRenderer.SetVertexCount (0); } Void Update () {if (Input.touchCount > 0) {Touch berørings = Input.GetTouch (0); if (touch.phase == TouchPhase.Moved) {lineRenderer.SetVertexCount (i + 1); Vector3 mPosition = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 15); lineRenderer.SetPosition (i, Camera.main.ScreenToWorldPoint (mPosition)); i ++; /* Legg Collider * /BoxCollider bc = lineGO.AddComponent < BoxCollider > (); bc.transform.position = lineRenderer.transform.position; bc.size = new Vector3 (0,1f, 0,1f, 0,1f); } If (touch.phase == TouchPhase.Ended) {/* Fjern Linje * /lineRenderer.SetVertexCount (0); i = 0; /* Fjern Linje colliders * /BoxCollider [] lineColliders = lineGO.GetComponents < BoxCollider > (); foreach (BoxCollider bi lineColliders) {Destroy (b); }}}}} 
 16. Endelige Steps 
 
 Trinn 1: 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 
 
 Trinn 2:. Player Settings 
 
 Når du er fornøyd med spillet, er det tid for å velge  Bygg Innstillinger 
 fra  Fil 
 menyen og klikk på  Player Settings 
 knappen. 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. 
 < h3> Trinn 3: 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 for 
 
 Trinn 4:. Build and Play 
 
 Når prosjektet er riktig konfigurert, er det på tide å revidere  Bygg Innstillinger Hotell og klikk på  Bygg 
 Button. Det er alt det tar å bygge spillet for testing og /eller distribusjon. 
 
 
 
 Konklusjon 
 
I denne opplæringen, vi har lært hvordan de skal bruke berøringskontroller, fysikk krefter, GUI Tekstur 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.

