Spil

Unity3D Tutorial

Unity3D Tutorial

Introduktion til Unity 3D

Unity 3D er en kraftfuld spiludviklingsmotor. Det er cross platform, det er det giver dig mulighed for at oprette spil til mobil, web, desktop og konsol, omkring 30 platforme i alt. Unity 3D har mange spændende funktioner, et par af dem er angivet nedenfor:

Enhedsgrænseflader

Lad os undersøge Unity-editorens grænseflader, som kan konfigureres.  Det består af tappede vinduer, som du kan omarrangere efter dit behov.  Lad os undersøge standardvindueindstillingerne. Her er billedet, hvordan det ser ud

Hierarkivindue

Hierarkivinduet repræsenterer hvert objekt i scenen. Det viser, hvordan objekter er forbundet med hinanden i scenen, så disse to vinduer er relateret. I hierarkivinduet er der en rulleliste med navnet skab. Du kan oprette et tomt objekt, 3D-objekter, 2D-objekter, lys, lyd, video, partikelsystem og kameraobjekter meget let. Hierarkivinduet vises nedenfor. 'Untitled' er scenens navn. Du kan omdøbe det, som du vil. Du kan se et drop down-ikon på højre side af titlen (scenenavn). Ved at klikke på denne rullemenu kan du se forskellige muligheder for Gem scene og Tilføj ny scene.

Scenevindue

Scenevindue er det sted, hvor du opretter din scene. Det er her, du kan interagere med dine spilobjekter og modeller. Du kan ændre størrelsen, omforme og omplacere dine sceneobjekter. Dette er det vindue, hvor du begynder at arbejde med Unity. Scenevisning kan være 2D eller 3D afhængigt af indstillingen af ​​dit projekt. Her er et skærmbillede af, hvordan scenevinduet ser ud:

I scenevinduet kan du se en anden fane mærket Skraveret, det er her, du kan vælge, hvilken type visning du vil have enten skyggelagt eller trådfri ramme. Det har mange andre muligheder som Diverse, Global belysning, Realtid GI, Bagt GI og mange andre. Du kan se til 2D eller 3D ved at bruge knappen ved siden af Skraveret drop down. Dernæst er vippeknappen til scenebelysning. Tilsvarende en vippeknap til scene-lyd. Dernæst er en rulleliste for at aktivere skyboks, tåge, animeret materiale og billedeffekter.

Spilvindue

Spilvinduet repræsenterer dit sidste, offentliggjorte spil i play-tilstand. Det gengives fra de kameraer, du brugte i dit spil. I spilvinduet kan du se en anden værktøjslinje som vist nedenfor i skærmbilledet:

Display 1 viser kameraet til stede i din spilscene. Som standard er den indstillet til Skærm 1 til hovedkamera. Hvis du har flere kameraer, og du vil skifte, kan du vælge fra rullelisten. Ved siden af ​​dette kan du se et drop down for størrelsesforhold. Du kan vælge i henhold til din målenheds skærmskærm. Dernæst kan du se en Skala skyder for at zoome ind. Rul til højre og undersøg flere detaljer om din scene i afspilningstilstand. Næste er knappen til Maksimer ved afspilning, Når der klikkes på, vil størrelsen på spilvinduet være maksimal i afspilningstilstand. Slå lyd fra skifte bruges til at slå lyd fra / fra. Statistik viser gengivelsesstatistikker om dit spil lyd og grafik.

Vinduet Projektaktiver

Som navnet viser aktiver vinduet har alle aktiverne i dit projekt, som du kan bruge. Hvis du importerer noget nyt, vises det i projektets aktiver-vindue. Projektaktivvinduet har to dele, det venstre panel og det højre panel som vist i nedenstående skærmbillede:

Venstre rude viser den hierarkiske struktur af projektets aktiver.  Når du klikker på en vilkårlig mappe, vises detaljerne i højre panel. For eksempel i den givne figur Præfabrikker mappen klikkes i venstre panel, så dens detaljer vises i højre panel, da den indeholder to spilobjekter. I venstre panel kan du se en Foretrukne sektion, hvor du kan trække emner, som du vil bruge meget ofte for at undgå tidsspild i at søge efter dem. Over det kan du se en skab drop down, som giver dig mulighed for at oprette et C #-script, en mappe, en skygge, en GUI-hud, en scene, en præfabrik, et materiale og meget mere.

Konsolvindue

Konsolvinduet er det sted, hvor du kan se dine fejl, advarsler og meddelelser. Du kan justere dem ved at klikke på deres skifteknapper. Det giver dig også mulighed for at rydde alle fejl, advarsler og meddelelser. Du kan sætte fejl på pause i et bestemt tidsrum. Her kan du se i følgende figur

Rullemenuen øverst til højre har muligheder for Editor-log og Stack Trace Logging.

Inspektørvindue

Inspektørvindue er et af editorens mest interessante og nyttige vinduer. Det er stedet, hvor du kan redigere alle egenskaberne for det valgte spilobjekt. Hvert spilobjekt har sin egen type, så deres egenskaber vil være forskellige, og inspektørens vindue kan variere. Aktiver, scripts og spilgenstande varierer alle i egenskaber. Lad os se egenskaberne for en terning i inspektørvinduet. Her er billedet:

Du kan omdøbe dit spilobjekt ved blot at klikke på det forrige navn og skrive et nyt. Dernæst vil du se transformationsafsnittet, hvor du kan justere position, rotation og skalering af dit valgte spilobjekt. I det sidste ser du et knapnavn som Tilføj komponent, klik på det for at tilføje nye komponenter til dit spilobjekt, for eksempel hvis du vil vedhæfte et script, skal du bare klikke på tilføj komponent og skrive dit scriptnavn.

Værktøjslinje

Sidst er værktøjslinjens fane, den har mange nyttige funktioner. Den indeholder nogle grundlæggende værktøjer til at manipulere scenevisningen og objekterne. I midten er der knapper til afspilning, pause og trinkontrol. De næste to knapper viser din Unity-sky og din Unity-konto. Her er figuren, hvordan det ser ud:

Kom godt i gang med enhed

Lad os begynde at oprette et nyt projekt i Unity, fordi det er tid til at lege med det, vi har lært. Dobbeltklik på Unity-ikonet, hvorefter følgende vindue vises:

Gå ind Projekt navn, vælg en arbejdsplads Beliggenhed og vælg derefter projekttypen enten 2D eller 3D. Klik på Opret projekt.

Som standard vil du se en scene uden titel indeholdende et hovedkamera og retningslys i scenen. Lad os begynde at skabe et miljø.

Bygningsmiljø

Opret først et plan ved at klikke på Opret -> 3D-objekt og vælg derefter Fly. Eller alternativt kan du oprette det ved at klikke på GameObject -> Spilobjekt og vælg derefter Fly. Gå til hierarkivinduet og klik på plan spilobjekt. Gå nu til inspektørvinduet, og omdøb det til Jord. Juster nu transformationsværdierne, så dette plan ligner en lige vej. Skal bare X til 6 og Z til 50. Her er billedet, hvordan det ser ud

Download nu en vejtekstur, og læg den på jorden. Opret et mappenavn som tekstur. Træk downloadet vejtekstur til Textures mappe. Vælg nu Jord og træk vejtekstur i scenevisningen. Her er billedet, hvordan det ser ud

Dette er den struktur, jeg downloadede

Efter påføring af tekstur på jorden skal du klikke på Ground og indstille fliser i inspektørvinduet. Sådan indstiller jeg det.

Nu har du oprettet en vejmodel, lad os oprette en kuglemodel i enhed.

Gå til Opret -> 3D-objekt og vælg derefter Kugle, du vil se et kugleobjekt i scenevinduet. Vælg det, og gå til inspektørvinduet for at omdøbe det som Bold. Juster nu transformationsværdierne i overensstemmelse hermed. Bare skaler det til 5 langs alle tre akser, og flyt det til midten af ​​vejen. Sådan ser det ud

Opret nu et hegn eller en mur rundt om vejen.

Gå til Opret -> 3D-objekt og vælg derefter Terning. Vælg det, og omdøb det til Væg1. Gå til inspektørvinduet, og indstil transformationsværdier, så det ligner en mur omkring vejen. Sådan ser det ud:

Se disse transformationsværdier for Væg1. Skaler Y til 6 og Z til 500. Juster derefter dens position, så den kommer i hjørnerne af vejen.

Søg nu efter en vægtekstur, download den og kopier til den Struktur mappe i aktiver. Træk tekstur på væggen til væggen i motivvinduet. Juster bearbejdningen, så den ser flot og glat ud. Jeg justerede flisebelægningen som X til 50 og Y til 1.5. Efter justering af flisebelægning ser det sådan ud

Dette er den tekstur, jeg brugte til væg

Vi har skabt mur til den ene side af vejen. Gør nu også det samme for den anden side af vejen. I stedet for at gå igennem hele processen kan vi bare kopiere Væg1 og omdøb det til Væg2.

Vælg Væg1 i hierarkivinduet, og højreklik derefter og vælg derefter Duplikere mulighed. Det opretter et andet spilobjekt med samme størrelse og transformationsværdier. Klik på Væg1 (1) og omdøb det til Væg2. Juster nu positionen, så den kommer til det andet hjørne af vejen.

Se det følgende billede, hvor sejt det ser ud

Mine positionsværdier for Wall2 er X til -29.6 Y til 2.6 og Z til 2.6.

Opret nu et materiale til Bold. Gå til projektvinduet, og opret en mappe ved at højreklikke på musen og derefter vælge Folder. Navngiv det som Materialer. Igen højreklik på musen og opret et materiale. Navngiv det som redBall. Vælg farve på materialet i inspektørens vindue. Gå til Hovedkort og vælg Albedo-farve til rød. Forøg den metalliske struktur ved at rulle bjælken til højre. Træk dette materiale til Bold i scenevisningen. Sådan ser det ud

Sådan ser materialet ud:

Så vi er færdige med vores miljøudvikling. Nu tid til at lave noget kodning. Til dette er vi nødt til at oprette et script.

Scripting i enhed

At implementere dine egne gameplay-funktioner og styre spillets opførsel giver Unity som en scripting-mekanisme. Du kan skrive dit eget script til den ønskede output af spillet. Med disse scripts kan du udløse spilbegivenheder, ændre komponentens egenskaber, og du kan svare på brugerinput. Grundlæggende understøtter Unity to forskellige programmeringssprog til scriptingsformål, det ene er C # og det andet er JavaScript. Andre end disse to sprog mange andre .NET-sprog kan også bruges med Unity. Scripts er kendt som adfærdskomponent i Unity.

Oprettelse af et script

Lad os begynde at oprette et Unity-script. Gå til aktivvinduet, og opret en ny mappe med navnet Scripts (du kan springe over at oprette nye mapper til hver ny type aktiv, men det er god praksis at holde tingene organiseret). Sådan ser mit aktiver-vindue ud nu:

Åbn nu Scripts mappe, højreklik og derefter gå til skab og vælg C # manuskript. Omdøb script til Bevægelse. Vi opretter dette script til at flytte og rulle bolden på vejen. For nu er bolden stille, gør ingenting, lad os skabe en bevægelse i den.

Dobbeltklik på Movement-scriptet, det åbner i Mono Develop. Hvis dit script er en mono-opførsel, vil du se en forudskrevet kode som denne

ved hjælp af System.Samlinger; ved hjælp af System.Samlinger.Generisk; ved hjælp af UnityEngine; public class MovementScript: MonoBehaviour // Brug dette til initialisering ugyldigt Start ()  // Opdatering kaldes en gang pr. frame ugyldig opdatering ()  

Du kan se to funktioner Start () og Update ().

Start(): Start-funktionen bruges til at initialisere variabler og objekter. Det kaldes kun en gang, når scriptet er aktiveret lige før andre opkald til opdateringsfunktioner.

Opdatering (): Det er en mono adfærd funktion, det kaldes en gang i hver ramme.

Bortset fra disse to er der mange andre mono-adfærdsfunktioner, f.eks. Vågen (), fixedUpdate (), lateUpdate () osv.

For at bevæge kuglen på vejen skal du først gøre den til en stiv krop (det er et ideelt fast legeme, hvor deformation forsømmes). Vælg Bold i hierarkivindue og klik på Tilføj komponent knap i inspektørvinduet. Skriv stiv krop og tryk Gå ind. En stiv krop fastgøres til Bold. Gå nu til script og opret en privat variabel af typen Stivkrop. Tildel nu stiv krop af kuglen til denne variabel, du lige har oprettet i scriptet.

private Rigidbody rb; rb = GetComponent (); 

Skriv nu en kode til bevægelsen af ​​dette stive legeme. Hvad er ideen? Bolden skal bevæge sig, når jeg trykker på piletasterne på tastaturet. Det skal bevæge sig fremad, når der trykkes på op-tasten, bagud, når der trykkes på ned-tasten og så videre.

Så input kommer fra tastaturet, hvordan skal jeg få dette input? Unity's Input-klasse har et funktionsnavn GetAxis (), for at returnere værdien af ​​virtuel akse identificeret ved aksenavnet. Opret to variabler en til x-akse og en til y-akse input. Sådan skal det være

float moveHorizontal = Input.GetAxis ("vandret"); 

Opret nu en Vector3-variabel for at få bevægelsesværdier.

Vector3-bevægelse = ny Vector3 (moveHorizontal, 0.0f, moveVerticle); 

Den første parameter er værdien af ​​x-aksen, den anden er værdien af ​​y-aksen og den tredje er værdien af ​​z-aksen. Da kuglen ikke vil bevæge sig i retning af y-aksen, så tildel den nul. Til sidst tilføj denne bevægelse til stiv krop og multiplicer med et konstant tal for hastighed eller opret en anden variabel for hastighed. Se den komplette kode nedenfor

ved hjælp af System.Samlinger; ved hjælp af System.Samlinger.Generisk; ved hjælp af UnityEngine; offentlig klasse Bevægelse: MonoBehaviour public float speed; private Rigidbody rb; // Brug dette til initialisering ugyldigt Start () rb = GetComponent ();  // Fast opdatering kaldes efter fast antal rammer ugyldige FixedUpdate () float moveHorizontal = Input.GetAxis ("vandret"); float moveVerticle = Input.GetAxis ("vandret"); Vector3-bevægelse = ny Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (bevægelse * hastighed);  

Da hastighed er en offentlig variabel, så du kan tildele værdi i inspektørvinduet. Vedhæft dette script til bolden ved at trække det til inspektørvinduet eller ved at trykke på Tilføj komponent knap. Tryk på play-knappen og test din kodning, enten kuglen bevæger sig eller ej.

Indstilling af kamera

Den sidste ting, du vil bemærke, er, når du trykker på fremad-knappen, og kuglen begynder at bevæge sig, den går ud af kameraet, da kameraet er stille. Hvad skal vi gøre? Vi skal også flytte kameraet? Ja, det er den enkleste ting at gøre. Gør kameraets barn til bolden ved at trække hovedkameraet til bolden.

Konklusion

Dette var en grundlæggende introduktionsvejledning, hvor du lærte mange interessante funktioner, miljøopbygning og scripting i Unity. Tøv ikke, start med at oprette dit første spil med Unity i dag og nyd det!

SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...
Kæmp om Wesnoth-vejledning
Slaget om Wesnoth er et af de mest populære open source-strategispil, som du kan spille på dette tidspunkt. Ikke kun har dette spil været under udvikl...
0 A.D. Vejledning
Ud af de mange strategispil derude, 0 A.D. formår at skille sig ud som en omfattende titel og et meget dybt, taktisk spil på trods af at det er open s...