Ar esate naujokas „Unity“? Norite išmokti priimti žaidėjų indėlius ir perkelti personažus ekrane? Sukūrėme šį vadovą norėdami parodyti tris skirtingus būdus, kaip galite valdyti žaidėjų judėjimą Unity.

Nesvarbu, ar esate naujokas kodavimo srityje, ar turite patirties, ši C# mokymo programa padės jums atsistoti, o veikėjams – ant kojų.

Pradėkime.

Žaidėjų judėjimas vienybėje: įvesties rinkimas

Visų pirma, jūs turite žinoti, kaip užfiksuoti vartotojo įvestis ir paversti juos žaidimo judesiais. „Unity“ tai labai palengvina, jei žinote, kur ieškoti.

Kai Unity atidaryta, spustelėkite Redaguoti viršutinėje įrankių juostoje. Dabar pasirinkite Projekto nustatymai. Kairiajame sąraše pasirinkite Įvesties tvarkyklė. Pasirinkite Kirviai, užpildydami įvesties reikšmių sąrašą. Norėsis pažiūrėti Horizontaliai ir Vertikalus pagrindiniam judėjimui.

Šias ašis naudosite kartu su Įvestis. GetAxisRaw(); pagrindiniam judėjimui kitame skyriuje.

Žaidėjo judėjimas vienybėje naudojant standųjį korpusą ir greitintuvą

Dabar, kai žinote ašių pavadinimus, galite naudoti juos žaidėjo judėjimui valdyti.

instagram viewer

Jūsų Vienybės projekte Hierarchija peržiūrėti, dešiniuoju pelės mygtuku spustelėkite ir pasirinkite 3D objektas > Kapsulė sukurti tai, kam suteiksite judėjimą. Būtinai naudokite tą pačią taktiką, kad sukurtumėte pagrindą Lėktuvas kad jūsų kapsulė stovėtų.

Būtinai iš naujo nustatykite Transformuoti abiejų objektų vertę ir perkelkite kapsulę taip, kad ji stovėtų lėktuve. Pervardykite savo kapsulę į „Player“, kad būtų lengviau identifikuoti.

Susijęs: 5 Unity žaidimo kūrimo kalbos: kurias turėtumėte išmokti?

Spustelėkite ant Žaidėjas objektas ir inspektorius peržiūrėti, slinkite žemyn iki Pridėti komponentą. Pridėti Tvirtas kūnas, tada pridėkite kitą komponentą kaip a Kapsulių greitintuvas šį kartą. Jums prireiks šių komponentų, kad papildytumėte fiziką, taigi ir judesį Žaidėjas.

Tada dešiniuoju pelės mygtuku spustelėkite savo Scenarijai aplankas ir Sukurti naujas C# scenarijus. Pavadinkite šį scenarijų panašiai kaip „PlayerMovement“. Jei planuojate pridėti kelių tipų judesius skirtingiems simboliams ar valdiklių tipams, kiekvienam judesio tipui norėsite sukurti daug skirtingų scenarijų. Šiuo metu mes sutelksime dėmesį į pagrindus ir naudosime vieną scenarijų.

Taip pat žiūrėkite: Kas yra modulinis programavimas Unity ir kodėl tai svarbu?

Dukart spustelėkite scenarijų, kad jį atidarytumėte. Būsite sutikti numatytąjį Unity scenarijų:

naudojant Sistemą. Kolekcijos;
naudojant Sistemą. Kolekcijos. Bendrasis;
naudojant UnityEngine;
viešoji klasė ŽaidėjasMovement: MonoBehaviour
{
// Pradėti iškviečiama prieš pirmąjį kadro atnaujinimą
negalioja pradžia ()
{

}
// Atnaujinimas iškviečiamas vieną kartą kiekvienam kadrui
negaliojantis atnaujinimas ()
{

}
}

Galite ištrinti naudojant Sistemą. Kolekcijos; ir naudojantSistema. Kolekcijos. Bendrasis; nes jie nereikalingi šiam scenarijui.

Kai tai nėra pakeliui, sutelkite dėmesį į

public class PlayerMovement: MonoBehaviour {

dabar. Atidarymo garbanotos petnešos viduje sukurkite a viešas plaukimas kintamasis pavadintas greitis ar kažkas panašaus. Tai greitis kintamasis yra daugiklis, kuris valdys, kaip greitai mūsų Žaidėjas juda po dar šiek tiek programavimo. Kol kas nustatykite greitis lygus kažkam panašaus 10f.

Taip pat turite leisti Unity, kad šiame scenarijuje būtų galima manipuliuoti Rigidbody. Tai daroma naudojant raktinį žodį Tvirtas kūnas ir kintamojo pavadinimą – pasirinksime rb.

viešoji klasė ŽaidėjasMovement: MonoBehaviour
{
viešasis plūduriavimo greitis = 10f; //Valdo greičio daugiklį

Tvirtas korpusas rb; // Nurodo scenarijui, kad yra standus korpusas, mes galime naudoti kintamąjį rb, kad galėtume jį nurodyti kitame scenarijuje

Tai viskas, ką reikia pridėti šiame skyriuje. Dabar pereikite prie negalioja pradžia (). Pradėdami žaidimą, turite nustatyti rb kintamasis lygus Tvirtas kūnas ant Žaidėjas kaip taip:

negalioja pradžia ()
{
rb = GetComponent(); //rb yra lygus grotuvo standžiam korpusui
}

Dabar pažvelkite į negaliojantis atnaujinimas () funkcija. Tai funkcija, kurią naudosite norėdami nuolat gauti įvestis iš grotuvų klaviatūrų, valdiklių ir kt. Prisiminkite, kai patikrinote Projekto nustatymai dėl Įvesties ašys? Jūs juos čia panaudosite.

negaliojantis atnaujinimas ()
{
float xMove = Įvestis. GetAxisRaw ("Horizontalus"); // d klavišas pakeičia reikšmę į 1, raktas pakeičia reikšmę į -1
float zMove = Įvestis. GetAxisRaw („Vertikali“); // klavišas w pakeičia reikšmę į 1, s mygtukas pakeičia reikšmę į -1
rb.velocity = naujas Vector3(xMove, rb.velocity.y, zMove) * greitis; // Sukuria greitį vertės kryptimi, lygiu klavišo paspaudimui (WASD). rb.velocity.y susijęs su kritimu + šokinėjimu nustatant greitį į y.

}

Nesijaudinkite, jei jaučiatės priblokšti dėl kodo šuolio; mes tai paaiškinsime žingsnis po žingsnio. Pirmiausia sukurkite a plūdė kintamasis su pavadinimu kaip xMove, ir nustatykite jį lygų Įvestis. GetAxisRaw ("Horizontalus");

Įvestis. GetAxisRaw(); yra Unity būdas įrašyti grotuvo įvestis iš Kirviai radote Projekto nustatymai. Daugiau apie tai galite perskaityti Unity oficialūs dokumentai. "Horizontalus" kilęs iš Horizontalioji ašis vardas Vienybėje. Ši ašis valdo judėjimą į kairę ir į dešinę mygtukais „a“ ir „d“.

Kaip tikriausiai jau spėjote, float zMove = Įvestis. GetAxisRaw („Vertikali“); daro tą patį, tik su „w“ ir „s“ klavišais.

Susijęs: Geriausi Unity 3D vadovėliai pradedantiesiems

Kitas, jūs įdėkite tai greitis kintamąjį, kurį sukūrėte, žaisti ir užbaigti paskutinę dėlionės dalį, skirtą žaidėjo judėjimui Unity.

rb.velocity = naujas Vector3(xMove, rb.velocity.y, zMove) * greitis; // Sukuria greitį vertės kryptimi, lygiu klavišo paspaudimui (WASD). rb.velocity.y susijęs su kritimu + šokinėjimu nustatant greitį į y.

Grįžkite į Unity inspektorius peržiūrėti Žaidėjas objektas. Pažvelkite į Tvirtas kūnas-pagal Informacija, pamatysite vertę Greitis. Tai vertė, pagal kurią taikote rb.greitis.

naujas Vector3(xMove, rb.velocity.y, zMove) * greitis, sukuria naują vektorių su pateiktomis x, y ir z reikšmėmis, tada padaugina vektoriaus reikšmę iš greitis.

Būtinai vilkite Žaidėjų judėjimas scenarijus į Žaidėjas objektas Vienybėje, ir viskas! Iš viso jūs turite veikiantį C# scenarijų, kuris paima įvestis iš grotuvo ir paverčia juos simbolių judėjimu Unity.

Štai baigtas kodas:

naudojant UnityEngine;
viešoji klasė ŽaidėjasMovement: MonoBehaviour
{
viešasis plūduriavimo greitis = 10f; //Valdo greičio daugiklį
Tvirtas korpusas rb; // Nurodo scenarijui, kad yra standus korpusas, mes galime naudoti kintamąjį rb, kad galėtume jį nurodyti kitame scenarijuje

// Pradėti iškviečiama prieš pirmąjį kadro atnaujinimą
negalioja pradžia ()
{
rb = GetComponent(); //rb yra lygus grotuvo standžiam korpusui
}

// Atnaujinimas iškviečiamas vieną kartą kiekvienam kadrui
negaliojantis atnaujinimas ()
{
float xMove = Įvestis. GetAxisRaw ("Horizontalus"); // d klavišas pakeičia reikšmę į 1, raktas pakeičia reikšmę į -1
float zMove = Įvestis. GetAxisRaw („Vertikali“); // klavišas w pakeičia reikšmę į 1, s mygtukas pakeičia reikšmę į -1
rb.velocity = naujas Vector3(xMove, rb.velocity.y, zMove) * greitis; // Sukuria greitį vertės kryptimi, lygiu klavišo paspaudimui (WASD). rb.velocity.y susijęs su kritimu + šokinėjimu nustatant greitį į y.

}
}

Pastaba: Jei pastebite, kad jūsų veikėjas daugiau šliaužioja nei bet kas kitas, būtinai užfiksuokite žaidėjo sukimąsi inspektorius.

Sužinokite ir sukurkite daugiau Unity

Dabar, kai žinote, kaip programuoti žaidėjo judėjimą Unity su Rigidbody ir Collider komponentais, ką išmoksite toliau? Galbūt praplėsti judesio valdiklį ir įtraukti tokius dalykus kaip slydimas, šokinėjimas dvigubai ir dar daugiau, būtų įdomu ir patrauklu.

„Unity Learn“ yra pilna įdomių temų, padedančių tobulinti jūsų žaidimų kūrimo įgūdžius. Manome, kad vienas iš svarbiausių faktorių plečiant programavimo žinias yra kasdien išmokti ko nors naujo. Būkite smalsūs ir laimingi įsilaužimai!

„Unity Learn“ yra lengviausias būdas įvaldyti žaidimų kūrimą

Norite pradėti kurti savo žaidimus? Unity Learn yra geriausias ir lengviausias būdas mokytis ir įsisavinti tai, ką reikia žinoti.

Skaitykite toliau

DalintisTviteryjeEl. paštas
Susijusios temos
  • Programavimas
  • Žaidimo kūrimas
  • Vienybė
  • Programavimas
Apie autorių
Marcusas Mearsas III (Paskelbta 30 straipsnių)

Marcusas yra laisvai samdomas technologijų žurnalistas ir MUO programavimo jaunesnysis redaktorius. Jis yra visą gyvenimą besimokantis, mėgėjų kūrėjas ir trumpų istorijų rašytojas, turintis daugiau nei 3 metų patirtį kuriant prozą, kuri leidžia skaitytojams žinoti.

Daugiau iš Marcuso Mearso III

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!

Spauskite čia norėdami užsiprenumeruoti