Vai esi jauns Vienotībā? Vai vēlaties uzzināt, kā iegūt informāciju no spēlētājiem un pārvietot varoņus pa ekrānu? Mēs esam izveidojuši šo rokasgrāmatu, lai parādītu trīs dažādus veidus, kā jūs varat kontrolēt spēlētāju kustību Unity.

Neatkarīgi no tā, vai esat iesācējs kodēšanas jomā vai jums ir neliela pieredze, šī C# apmācība jūs nostādīs uz kājām, bet varoņi - uz savām kājām.

Sāksim.

Spēlētāju kustība vienotībā: ievades vākšana

Pirmkārt, jums ir jāzina, kā uztvert lietotāja ievadītos datus un pārvērst tos kustībās spēlē. Vienotība to padara diezgan vienkāršu, ja vien zināt, kur meklēt.

Kad Vienotība ir atvērta, noklikšķiniet uz Rediģēt augšējā rīkjoslā. Tagad atlasiet Projekta iestatījumi. Kreisajā pusē esošajā sarakstā izvēlieties Ievades pārvaldnieks. Izvēlieties Cirvji, aizpildot ievades vērtību sarakstu. Jūs vēlaties apskatīt Horizontāli un Vertikāli pamata kustībām.

Jūs izmantosit šīs asis kopā ar Ievade. GetAxisRaw(); par pamata kustību nākamajā sadaļā.

Spēlētāju kustība vienotībā, izmantojot stingru korpusu un paātrinātāju

instagram viewer

Tagad, kad zināt asu nosaukumus, varat tos izmantot, lai kontrolētu spēlētāja kustību.

Jūsu Vienotības projektā Hierarhija apskatīt, ar peles labo pogu noklikšķiniet un atlasiet 3D objekts > Kapsula lai radītu to, kam piešķirsit kustību. Noteikti izmantojiet to pašu taktiku, lai izveidotu zemi Lidmašīna lai jūsu kapsula stāvētu.

Noteikti atiestatiet Pārveidot abu objektu vērtību un pārvietojiet savu kapsulu tā, lai tā stāvētu uz plaknes. Pārdēvējiet savu kapsulu par tādu kā "Player", lai to varētu viegli identificēt.

Saistīts: 5 Unity spēļu izstrādes valodas: kuras jums vajadzētu mācīties?

Noklikšķiniet uz Spēlētājs objektā un inspektors skatīt, ritiniet uz leju līdz Pievienot komponentu. Pievienojiet a Stingrs korpuss, un pēc tam pievienojiet citu komponentu kā a Kapsulas paātrinātājs šoreiz. Šie komponenti jums būs nepieciešami, lai pievienotu fiziku un līdz ar to arī kustību Spēlētājs.

Pēc tam ar peles labo pogu noklikšķiniet savā Skripti mape un Izveidot jauns C# skripts. Nosauciet šo skriptu kaut ko līdzīgu "PlayerMovement". Ja plānojat pievienot vairākus kustības veidus dažādām rakstzīmēm vai kontrolleru veidiem, katram kustības veidam ir jāizveido daudz dažādu skriptu. Pagaidām mēs koncentrēsimies uz pamatiem un izmantosim vienu skriptu.

Skatīt arī: Kas ir modulārā programmēšana vienotībā un kāpēc tā ir svarīga?

Veiciet dubultklikšķi uz skripta, lai to atvērtu. Jūs sagaidīs noklusējuma Unity skripts:

izmantojot sistēmu. Kolekcijas;
izmantojot sistēmu. Kolekcijas. Vispārējs;
izmantojot UnityEngine;
publiskās klases SpēlētājsKustība: MonoBehaviour
{
// Sākums tiek izsaukts pirms pirmā kadra atjaunināšanas
spēkā neesošs sākums()
{

}
// Atjauninājums tiek izsaukts vienu reizi katrā kadrā
nederīgs atjauninājums ()
{

}
}

Jūs varat izdzēst izmantojot sistēmu. Kolekcijas; un izmantojotSistēma. Kolekcijas. Vispārējs; jo tie nav nepieciešami šim skriptam.

Kad tas nav slikts, koncentrējieties uz

public class PlayerMovement: MonoBehavior {

tagad. Atveramās cirtainās stiprinājuma iekšpusē izveidojiet a publiskais peldlīdzeklis mainīgais nosaukts ātrumu vai kaut kas līdzīgs. Šis ātrumu mainīgais ir reizinātājs, kas kontrolēs, cik ātri mūsu Spēlētājs pārvietojas pēc vēl dažas programmēšanas. Pagaidām iestatīts ātrumu vienāds ar kaut ko līdzīgu 10f.

Jums arī jāļauj Unity, ka tur ir Rigidbody manipulēt šajā skriptā. Tas tiek darīts ar atslēgvārdu Stingrs korpuss un mainīgā nosaukums — mēs izvēlēsimies rb.

publiskās klases SpēlētājsKustība: MonoBehaviour
{
publiskais peldēšanas ātrums = 10f; //Kontrolē ātruma reizinātāju

Rigidbody rb; //Pasaka skriptam, ka ir stingrs korpuss, mēs varam izmantot mainīgo rb, lai atsauktos uz to turpmākajā skriptā

Tas ir viss, kas jums jāpievieno šajā sadaļā. Tagad pārejiet pie spēkā neesošs sākums(). Uzsākot spēli, jums ir jāiestata rb mainīgais, kas vienāds ar Stingrs korpuss uz Spēlētājs kā tā:

spēkā neesošs sākums()
{
rb = GetComponent(); //rb ir vienāds ar atskaņotāja cieto korpusu
}

Tagad apskatiet nederīgs atjauninājums () funkcija. Šī ir funkcija, ko izmantosit, lai pastāvīgi uztvertu ievades datus no atskaņotāju tastatūrām, kontrolleriem utt. Atcerieties, kad pārbaudījāt Projekta iestatījumi priekš Ievades asis? Jūs tos izmantosit šeit.

nederīgs atjauninājums ()
{
float xMove = ievade. GetAxisRaw ("Horizontāli"); // d atslēga maina vērtību uz 1, atslēga maina vērtību uz -1
peldēt zMove = ievade. GetAxisRaw ("Vertikāls"); // taustiņš w maina vērtību uz 1, taustiņš s maina vērtību uz -1
rb.velocity = jauns Vector3(xMove, rb.velocity.y, zMove) * ātrums; // Izveido ātrumu vērtības virzienā, kas vienāds ar taustiņu nospiešanu (WASD). rb.velocity.y nodarbojas ar kritienu + lēkšanu, iestatot ātrumu uz y.

}

Neuztraucieties, ja jūtaties satriekts koda ievadīšanas laikā; mēs to izskaidrosim soli pa solim. Vispirms izveidojiet a peldēt mainīgais ar nosaukumu, piemēram xMove, un iestatiet to vienādu ar Ievade. GetAxisRaw ("Horizontāli");

Ievade. GetAxisRaw(); ir Unity veids, kā ierakstīt atskaņotāja ievades no Cirvji jūs atradāt Projekta iestatījumi. Jūs varat lasīt vairāk par to Vienotības oficiālā dokumentācija. "Horizontāli" nāk no Horizontālā ass vārds Vienotībā. Šī ass kontrolē kustību pa kreisi un pa labi ar taustiņiem "a" un "d".

Kā jau droši vien nojaušat, peldēt zMove = ievade. GetAxisRaw ("Vertikāls"); dara to pašu, izņemot taustiņus "w" un "s".

Saistīts: Labākās Unity 3D apmācības iesācējiem

Tālāk jūs to ievietosit ātrumu Spēlēt izveidoto mainīgo un pabeidziet pēdējo puzles daļu, lai spēlētu spēlē Unity.

rb.velocity = jauns Vector3(xMove, rb.velocity.y, zMove) * ātrums; // Izveido ātrumu vērtības virzienā, kas vienāds ar taustiņu nospiešanu (WASD). rb.velocity.y nodarbojas ar kritienu + lēkšanu, iestatot ātrumu uz y.

Dodieties atpakaļ uz Vienotību inspektors skats uz Spēlētājs objektu. Apskatiet Stingrs korpuss-zem Informācija, jūs redzēsit vērtību Ātrums. Šī ir jūsu mērķauditorijas atlases vērtība rb.ātrums.

jauns Vector3(xMove, rb.velocity.y, zMove) * ātrums, izveido jaunu vektoru ar piegādātajām x, y un z vērtībām, pēc tam reizina vektora vērtību ar ātrumu.

Noteikti velciet Spēlētāja kustība skripts uz Spēlētājs objekts Vienotībā, un viss! Kopumā jums ir darbojošs C# skripts, kas ņem ievadi no atskaņotāja un pārveido tos rakstzīmju kustībā Unity.

Šeit ir gatavais kods:

izmantojot UnityEngine;
publiskās klases SpēlētājsKustība: MonoBehaviour
{
publiskais peldēšanas ātrums = 10f; //Kontrolē ātruma reizinātāju
Rigidbody rb; //Pasaka skriptam, ka ir stingrs korpuss, mēs varam izmantot mainīgo rb, lai atsauktos uz to turpmākajā skriptā

// Sākums tiek izsaukts pirms pirmā kadra atjaunināšanas
spēkā neesošs sākums()
{
rb = GetComponent(); //rb ir vienāds ar atskaņotāja cieto korpusu
}

// Atjauninājums tiek izsaukts vienu reizi katrā kadrā
nederīgs atjauninājums ()
{
float xMove = ievade. GetAxisRaw ("Horizontāli"); // d atslēga maina vērtību uz 1, atslēga maina vērtību uz -1
peldēt zMove = ievade. GetAxisRaw ("Vertikāls"); // taustiņš w maina vērtību uz 1, taustiņš s maina vērtību uz -1
rb.velocity = jauns Vector3(xMove, rb.velocity.y, zMove) * ātrums; // Izveido ātrumu vērtības virzienā, kas vienāds ar taustiņu nospiešanu (WASD). rb.velocity.y nodarbojas ar kritienu + lēkšanu, iestatot ātrumu uz y.

}
}

Piezīme: ja atklājat, ka tavs varonis vairāk plīvo nekā jebkas cits, noteikti bloķējiet spēlētāja rotāciju inspektors.

Uzziniet un dariet vairāk pakalpojumā Unity

Tagad, kad zināt, kā ieprogrammēt spēlētāju kustību Unity ar Rigidbody un Collider komponentiem, ko jūs uzzināsit tālāk? Iespējams, ka kustību kontroliera paplašināšana, lai pievienotu tādas lietas kā slīdēšana, dubultlēkšana un citas iespējas, izrādīsies izklaidējoša un saistoša.

Unity Learn ir pilns ar interesantām tēmām, lai uzlabotu jūsu spēļu izstrādes prasmju kopumu. Mēs uzskatām, ka viens no svarīgākajiem faktoriem, lai paplašinātu zināšanas par programmēšanu, ir katru dienu apgūt ko jaunu. Esiet zinātkārs un laimīgu uzlaušanu!

Unity Learn ir vienkāršākais veids, kā apgūt spēļu izstrādi

Vai vēlaties sākt izstrādāt savas spēles? Unity Learn ir labākais un vienkāršākais veids, kā mācīties un apgūt to, kas jums jāzina.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Spēļu izstrāde
  • Vienotība
  • Programmēšana
Par autoru
Markuss Mērss III (Publicēti 30 raksti)

Markuss ir ārštata tehnoloģiju žurnālists un MUO programmēšanas jaunākais redaktors. Viņš mācās visu mūžu, aizrautīgs priekšgala izstrādātājs un īso stāstu rakstnieks ar vairāk nekā 3 gadu pieredzi prozas izstrādē, kas ļauj lasītājiem zināt.

Vairāk no Markusa Mērsa III

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu