E Charakter Controller ass e Skript deen Äre Charakter beweegt. Fir datt Äre Charakter sech beweegt, braucht Dir e Skript deen Äre Charakter Controller seet wat ze maachen.
Dir braucht als éischt e Verméigen aus dem Asset Store. Äre Charakter huet eng Sprite Render. Dir braucht och d'Haaptkamera a verschidde Plättercher déi Ären Niveau sammelen. D'Plattformen sollen Kollider hunn. Ausserdeem sollt een Collider präsent sinn fir de Buedem an e puer Hannergrond Grafiken.
Als éischt braucht Dir e Charakter Controller. Paste dëst an en Dossier vun Ärer Wiel an Unity. Wielt de Spiller a füügt de Skript do un.
Dëst gesäit dann esou aus:
Verschidde Astellunge fir de Charakter kënnen hei gemaach ginn. Dir hutt d'Méiglechkeet fir d'Sprangkraaft unzepassen, d'Duckinggeschwindegkeet an der Form vun "Kroungeschwindegkeet", an d'Gläichtheet vun der Bewegung. Vergewëssert Iech Air Control aktivéieren. Benotzt d'Optioun "What is Ground" fir d'Uewerfläch ze setzen wou Äre Charakter leeft. Zum Beispill, wielt alles hei an ewechzehuelen dann de Spiller. Wielt wéi uewen riets Layer de Spiller.
Da ginn et nach dräi eidel Plazen:
Ground Check: Et gëtt gepréift ob d'Spillfigur um Buedem ass.
Plafongsverkleedung: Wann Dir Crouch, et kontrolléiert ob et eng Plafong iwwer Äre Kapp ass
Fir d'Kontrollen méiglech ze maachen, braucht Dir eidel Objeten déi bestëmmen wou eppes ass. Erstellt en éischten Objet iwwer Create -> Empty Object a kopéiert et mat Ctrl + D. Beweegt déi jeeweileg Objeten op déi iewescht Sektioun vun der Figur an op déi ënnescht Sektioun. Nennt den ieweschten Objet Ceiling Check an den ënneschten Objet Ground Check.
Drag dës an déi jeeweileg Plaze vum Spiller.
Nächst, add een Rigidbody Füügt 2D fir Physik un Äre Charakter ze addéieren.
Äre Charakter soll eng méi héich Schwéierkraaft hunn wéi déi aner Spillobjekter. Also erhéicht d'Schwéierkraaft op zum Beispill 3.
Zousätzlech sollt Äre Charakter ëmmer riicht sinn an net rotéieren. Dofir wielt Constraints a setzt d'Rotatioun op der Z Achs.
Als nächst brauch Äre Charakter e Collider, soss fällt hien einfach duerch den Ecran. Ofhängeg vum Charakter, kënnt Dir mat verschiddene Kollidere schaffen. Dëst kann och zu engem méi realistesche Gefill am Spill féieren. Zum Beispill kënnt Dir Kreeskollider a Këschtkollider benotzen. Dir hutt d'Méiglechkeet e Kreeskollider ze addéieren. Ajustéiert als éischt de Këschtkollider a füügt de Kreeskollider derbäi oder ajustéiert.
Elo kënnt Dir Äert PlayerMovement Skript derbäi:
Gitt op Komponent addéieren -> Gitt PlayerMovement a wielt New Script a Create and Add.
Duebelklickt et fir se am Visual Studio opzemaachen.
Wann de Skript grau ass, klickt riets op Inspector uewen a wielt Debug Modus. Da kënnt Dir d'Dokument mat Visual Studio opmaachen.
Dat Ganzt gesäit elo esou aus:
Als éischt ass eng Referenz vum PlayerMovement Skript op de Charakter Controller gebraucht. Dëst seet Iech wat mam Charakter geschéie soll.
Dir braucht déi folgend Linn:
public CharacterController2D Controller;
Dann erschéngt de Charakter Controller 2D am Player Movement Script:
Dir kënnt Äert Charakter Controller Skript dohinner zéien a falen.
Géif Dir ënner ongëlteg Update ( ) {
Controller.Move( ); schrëftlech, Dir géift de System soen, datt Är Charakter plënneren soll.
Dat geet awer net duer. Dir musst uginn wou Dir wëllt datt Äre Charakter beweegt, souwéi d'Richtung an d'Geschwindegkeet. Dëst verlaangt Spiller Kontroll. Dofir setzt Dir déi folgend dobäi:
Fir Input vum Spiller braucht Dir d'Input Klass:
Input.GetAxosRaw ("Horizontal")
De Wäert läit normalerweis tëscht -1 an 1. Dëst hänkt vum Benotzerinput of.
De lénksen Pfeil oder e Schlëssel representéiert -1.
De richtege Pfeil oder D steet fir 1.
Dëst gëllt och fir de Controller.
Dir braucht och de Debug.Log Kommando:
Dëst Debug.log Kommando schéckt e Message un d'Konsole.
Um Enn gesäit d'Linn esou aus:
Debug.Log(Input.GetAxisRaw(“Horizontal”));
D'Konsol reagéiert op den neien Input. Wann Dir d'Pfeiltasten an déi jeweileg Richtungen dréckt, weist d'Konsole déi folgend:
De Skript gesäit elo esou aus:
Dëst bewierkt datt de System d'Entrée registréiert.
Den nächsten Aspekt dee mir brauchen ass de fixen Update. Mat dësem Input aktualiséiert de Computer den Ecran mat all Frame.
Dir braucht déi folgend Input:
void FixedUpdate()
{
// Beweegt eis Personnagen
}
Dës Sektioun garantéiert den Transfer vum Spillerinput zum Charakter.
void Start kënnt Dir läschen.
Also hutt Dir de folgende Skript:
De Benotzerinput muss vun enger Funktioun op déi aner transferéiert ginn. Fir dëst braucht Dir eng Variabel.
Dir braucht déi folgend Linn:
schwammen horizontalMove = 0f;
De Charakter soll dann geplënnert ginn. Dofir schreift Dir déi folgend ënner FixedUpdate:
controller.Move(horizontalMove);
Mat der Variabel (horizontalMove) präziséiert Dir wéi vill d'Figur soll geréckelt ginn.
Dir musst och de System soen datt de Charakter net däerf ducken oder sprangen.
Déi éischt falsch bezitt sech op Crouching an déi zweet falsch bezitt sech op Sprangen.
controller.Move (horizontalMove, falsch, falsch);
Elo ass d'Vitesse gebraucht:
public float runSpeed = 40f;
Elo multiplizéiert den horizontalen Input mat der RunSpeed.
horizontalMove = Input.GetAxisRaw ("Horizontal") * runSpeed;
De FixedUpdate muss och mat der Time.fixedDeltaTime multiplizéiert ginn:
controller.Move(horizontalMove * Time.fixedDeltaTime, falsch, falsch);
D'Funktioun bestëmmt datt d'Bewegung ëmmer um selwechte Wäert fixéiert ass.
Äre fäerdege Skript fir d'Bewegung gesäit esou aus:
Fixed Update heescht datt d'Funktioun eng Onmass Mol genannt ka ginn ouni en anert Resultat ze produzéieren.
Wann d'Figur fällt, bewegt se kuerz op de Buedem. Fir dëst z'eliminéieren, wielt de Rigidbody 2D aus der Figur an ännert d'Kollisiounserkennung vun Diskret op Kontinuéierlech. Dës Ännerung garantéiert datt d'Figur net an de Buedem rutscht.
De Sprangen
Elo gëtt Sprangen dobäi. De System muss de Charakter sprangen wann Dir e bestëmmte Knäppchen Press.
Dir braucht déi folgend Linn:
if (Input. GetButtonDown(“Jump))
Dës Informatioun muss elo och an de FixedUpdate Beräich transferéiert ginn. Fir dëst braucht Dir eng Variabel.
Fir dëst braucht Dir e Boolschen Bedreiwer. Dëst bedeit datt d'Resultat nëmme richteg oder falsch ka sinn:
bool sprangen = falsch;
Zousätzlech ginn et d'Konditiounen datt de Sprangknäppchen gedréckt muss ginn fir de Charakter ze sprangen.
Also et muss zu de Konditioune bäigefüügt ginn datt:
sprangen = richteg;
D'Sprangvariabel gëtt an de fixen Update-Sektioun bäigefüügt. Wann de Knäppchen net gedréckt ass, soll de Charakter net méi sprangen. Also sprangen = falsch; dobäi.
De Skript gesäit esou aus:
Elo spréngt Äre Charakter.
Fir datt Äre Charakter beim Sprangen net op Plattformen hänke bliwwen, mee glat erof rutscht, brauch Dir Physikmaterial.
Fir dëst ze maachen, wielt Create–>Physics Material 2D an der Projektfenster
Déi folgend Astellunge sinn verfügbar:
Setzt Reibung a Bounciness op 0.
Wielt de Spiller an zitt d'Physikmaterial an de Materialschlit op der Kollider.
Wann Dir méi Kollidere benotzt, füügt dëst och un deen anere Collider.
Wéi Är Charakter Enten
Dir kënnt d'Inputen fir d'Charakterbewegungen an den Unity Project Astellunge fannen.
Wielt de Sprong Sektioun a klickt op "Jump". Wielt Duplizéiert Array Element.
Dëst erstellt eng aner Inputoptioun fir Äre Charakter ze kräischen.
D'Tastatur Aufgab kann als alternativ Schlëssel definéiert ginn. Dëst ass den Alt Positive Button oder den Alternative Positive Button.
Ducking muss elo an de Skript agebaut ginn:
Am Update Beräich: wann (Input.GetButtonDown ("Crouch"))
E boolesche Faktor muss och dobäigesat ginn:
bool crouch = falsch;
Crouch gëtt an de Fixed Update Beräich bäigefüügt.
Ducking funktionnéiert net déiselwecht wéi Sprangen. Dir wëllt net datt Äre Charakter e Moment crouchéiert an dann ophält. Ducking soll ophalen wann den Duck Knäppchen fräigelooss gëtt. Äre Charakter soll nëmmen Crouch wann Dir de Knäppchen gedréckt.
Elo braucht Dir déi folgend Linn:
anescht wann (Input.GetButtonUp ("Crouch"))
{
crouch = falsch;
Dir sot de System datt Äre Charakter net entsteet wann Dir kee Schlëssel dréckt.
Elo geschitt näischt wann Dir den Duck Knäppchen dréckt, well d'Ducking duerch eng Animatioun gemaach gëtt.
Fir Crouching ze maachen, wielt de Collider vun Ärem Charakter a zitt en an de Crouch Disable Collider.
Dëst mécht Ducking méiglech fir Äre Charakter. Elo passt Äre Charakter tëscht zwee Niveauen. Wéi och ëmmer, Dir braucht nach ëmmer eng Animatioun fir ze ducken.
Ursprénglech verëffentlecht 2020-04-16 21:22:43.