Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Rakstzīmju kontrolleris var palīdzēt ieviest vienkāršu kustību fiziku jūsu spēlē.

Unity3D rakstzīmju kontrolleriem varat pieiet no vairākiem leņķiem. Ja izmantojat bibliotēku ar jaudīgām klasēm un funkcijām, uz fiziku balstīta rakstzīmju kontrollera izveide var būt jautra vieta spēles izstrādes sākšanai.

1. darbība. Izveidojiet ainu ar atskaņotāju un reljefa objektiem

Kad Unity ir atvērts un esat izveidojis jaunu projektu, varat sākt, pievienojot savai ainai pāris objektus. Varat izveidot šos objektus jebkurā sev tīkamā secībā, taču esiet uzmanīgi un pārliecinieties, vai izmantojat pareizos iestatījumus. Lai gan šis projekts ir vienkāršs, tas ir lielisks veids, kā sāc ar Vienotību.

3D plaknes objekts reljefam

Pirmais objekts, ko pievienot savai ainai, ir lidmašīna. Ar peles labo pogu noklikšķiniet hierarhijas rūtī, virziet kursoru virs 3D objektsun atlasiet

instagram viewer
Lidmašīna no saraksta. Varat pielāgot lidmašīnas izmēru, lai nodrošinātu lielāku pārbaudes laukumu, taču jums nav jādara nekas cits.

Kuba objektu atskaņotāja modelis

Pēc tam ir pienācis laiks ainai pievienot kubu, lai tas darbotos kā spēlētāja modelis. Ar peles labo pogu noklikšķiniet hierarhijas rūtī, virziet kursoru virs 3D objektsun atlasiet Kubs no nolaižamās izvēlnes. Novietojiet jauno kubu tā, lai tas atrastos virs plaknes, kuru arī esat pievienojis. Jums arī jāpievieno cietā korpusa sastāvdaļa, lai kubs kļūtu par fizikas objektu.

Izvēlieties kubu un dodieties uz inspektoru. Klikšķiniet uz Pievienot komponentu rūts apakšā meklējiet stingru korpusu un atlasiet Stingrs korpuss no saraksta, kad tas parādās. Atzīmējiet Izmantojiet gravitāciju atzīmējiet izvēles rūtiņu un atstājiet pārējos iestatījumus tādus, kādi tie ir.

Tu vari atrast bezmaksas Unity aktīvi tiešsaistē lai uzlabotu savu projektu.

Trešās personas kamera

Jūsu ainai jau ir jābūt kamerai, kuru varat izmantot kā trešās personas kameru. Novietojiet kameru tā, lai tā atrastos ērtā trešās personas pozīcijā virs sava kuba. Pirms kameras vilkšanas un nomešanas uz kuba atveriet hierarhijas rūti, lai izveidotu vecāku un bērnu attiecības. Kad tas būs izdarīts, kamera automātiski sekos jūsu kubam.

Ātrā pārbaude

Kamēr jūsu ainai vēl nav koda, varat pārbaudīt līdz šim paveikto darbu. Noklikšķiniet uz Spēlēt pogu ekrāna augšdaļā, lai ielādētu spēli. Jums vajadzētu redzēt, kā kubs nokrīt un nolaižas lidmašīnas augšpusē, un kamerai jāseko kubam, kad tas krīt.

2. darbība: iestatiet C# failu

Tagad ir pienācis laiks izveidot C# failu, lai jūs varētu sākt programmēt kādu kustību. Dodieties uz sadaļu Projekts, ar peles labo pogu noklikšķiniet, virziet kursoru virs Izveidot un sarakstā atlasiet Mape. Nosauciet mapi Skripti vai kaut ko līdzīgu.

Pārvietojieties jaunajā mapē un atkārtojiet procesu, bet sarakstā atlasiet C# Script. Varat piešķirt šim failam jebkuru nosaukumu, taču tas būs arī galvenās funkcijas nosaukums tajā. Pārliecinieties, vai jūsu jaunais C# izskatās šādi.

izmantojot Sistēma. Kolekcijas;
izmantojot Sistēma. Kolekcijas. Vispārējs;
izmantojot UnityEngine;

publiskiklasēCharacter_Control: Monouzvedība {
nederīgsSākt() {
}

nederīgsAtjaunināt() {
}
}

3. darbība: izmantojiet C#, lai izveidotu kustību uz priekšu un atpakaļ ar ātrumu

Pirms funkciju pievienošanas skripta failā deklarējiet dažus publiskos mainīgos. Vispirms ir stingrs korpuss, lai saglabātu atskaņotāja modeli. Arī deklarējiet pludiņu, lai sekotu kustības ātrumam. Šie mainīgie atrodas galvenajā klasē, ārpus jebkādām funkcijām.

publiski Rigidbody stingrs korpuss;
publiskipeldēt ātrums;

Pēc tam ir pienācis laiks funkcijai Sākt pievienot vienu koda rindiņu. Tas izmanto GetComponent deklarāciju, lai piešķirtu kuba cietā korpusa komponentu jūsu izveidotajam cietā korpusa mainīgajam.

nederīgsSākt() {
rigidbody = GetComponent < Rigidbody > ();
}

Tagad varat pievienot kodu, kas iedarbinās jūsu atskaņotāja modeli. Šis kods ir jauks un vienkāršs; jums vienkārši nepieciešami divi ja paziņojumi, viens kustībai uz priekšu un otrs, lai pārvietotos atpakaļ. Varat izmantot ievadi. GetKey, lai noteiktu, kad taustiņš tiek nospiests. Šajā gadījumā jūs meklējat taustiņu W un S nospiešanu.

Nospiežot kādu no šiem taustiņiem, kuba cietajam korpusam tiek pievienots spēks, izmantojot cieto korpusu. AddForce. Varat aprēķināt pievienotā spēka virzienu un ātrumu, reizinot tā Z-ass pozīciju (transform.forward) ar ātruma mainīgo. Nav klases transform.backward, ko varat izmantot kustībai atpakaļ, taču to var panākt, reizinot transform.forward ar -1.

ja (Ievade. GetKey("w")) {
stingrs korpuss. AddForce (transform.forward * speed);
}

ja (Ievade. GetKey("s")) {
stingrs korpuss. AddForce((transform.forward * -1) * ātrums);
}

Saglabājiet C# failu un dodieties atpakaļ uz Unity. Atrodiet skriptu projekta rūtī un velciet un nometiet to uz rakstzīmju modeļa Cube hierarhijā, lai piešķirtu skriptu šim objektam. Atlasot kubu, skriptam vajadzētu redzēt kā komponentu rūtī Inspektors. Noklikšķiniet cietā korpusa mainīgā lodziņā un atlasiet sava kuba cieto korpusu.

Tagad varat izmantot pogu Spēlēt, lai palaistu spēli un pārbaudītu savu kodu. Bet pagaidi! Ir problēma; jūsu kubs gatavojas ripot, nevis virzīties taisni uz priekšu. Atgriezieties pie kuba inspektora, atrodiet komponentu Rigidbody un atzīmējiet izvēles rūtiņas Freeze Rotation uz X un Z ass, pirms atkal sākat spēli. Tagad tam vajadzētu darboties.

4. darbība: izmantojiet C#, lai izveidotu pagriezienu pa kreisi un pa labi ar griezes momentu

Atšķirībā no pārvietošanās atpakaļ un uz priekšu, Cube atskaņotāja modeļa pagriešanai ir nepieciešams spēks, ko sauc par griezes momentu. Šim nolūkam ir nepieciešams cits mainīgais: publisks pludiņš, lai piešķirtu griezes momenta vērtību.

publiskipeldēt griezes moments;

Kods, lai pagrieztos pa kreisi un pa labi šajā skriptā, ir ļoti līdzīgs tam, ko izmanto arī, lai pārvietotos uz priekšu un atpakaļ. Ir an ja paziņojums katram virzienam, kas meklē vai nu D taustiņa nospiešanu (pagrieziens pa labi) vai A taustiņu (pagrieziens pa kreisi).

Pirmais solis katrā if paziņojumā ir noteikt pagrieziena virzienu, izmantojot ievadi. GetAxis metodi un piešķiriet rezultātu peldošajam mainīgajam. Pēc tam izmantojiet cieto korpusu. AddTorque, lai pielietotu rotācijas spēku kuba rakstzīmju modelim, reizinot kuba griezes momentu, pagriezienu un Z asi.

ja (Ievade. GetKey("d")) {
peldēt pagrieziens = ievade. GetAxis("Horizontāli");
stingrs korpuss. AddTorque (transform.up * griezes moments * pagrieziens);
}

ja (Ievade. GetKey("a")) {
peldēt pagrieziens = ievade. GetAxis("Horizontāli");
stingrs korpuss. AddTorque (transform.up * griezes moments * pagrieziens);
}

Saglabājiet savu kodu un dodieties atpakaļ uz Unity, lai to pārbaudītu. Varat pielāgot atskaņotāja modeļa rotācijas ātrumu un paaugstinājuma laiku, atlasot kubu un skriptā rediģējot cietā korpusa masas, vilkšanas un griezes momenta mainīgos. Šajā projekta paraugā ir iestatīta 1 masa, 1 pretestība un 2 griezes moments.

5. darbība: izmantojiet C#, lai ieprogrammētu lēkšanu

Kā šī Unity rakstzīmju kontrollera pēdējais elements ir pienācis laiks izveidot savu lēcienu. Lēciena izveide ir sarežģītāka nekā citas pamata vadīklas, pie kurām esat strādājis, jo lēcienam ir jābūt ierobežotam augstumam. Sāciet, pievienojot privātu Būla mainīgo, lai izsekotu, vai spēlētājs lec.

Privātsbool isJumping = viltus;

Šis mainīgais neko nedarīs bez paziņojuma, lai to pārbaudītu. Šajā gadījumā galvenais if paziņojums, lai pārbaudītu, vai mainīgais ir nepatiess, palīdzēs. Tāda paša nosacījuma pievienošana citai kustībai, ja paziņojumi neļaus spēlētājam kustēties lēcienu laikā.

ja (!isJumping) {
}

Tāda paša nosacījuma pievienošana citai kustībai, ja paziņojumi neļaus spēlētājam kustēties lēcienu laikā.

ja (Ievade. GetKey("w") && !isJumping) {
stingrs korpuss. AddForce (transform.forward * speed);
}

Paziņojumā !isJumping if ir nepieciešams vēl viens if priekšraksts, šoreiz, lai pārbaudītu, vai nav nospiests lēciena taustiņš. Mainīgā isJumping iestatīšana uz True ir pirmā lieta, kas jādara šajā if paziņojumā, kam seko rigidbody.angularVelocity deklarācija, lai noņemtu kubam pašlaik pieliktos spēkus.

Tagad jūs varat izmantot cieto korpusu. AddForce deklarācija, lai pievienotu spēku kubam uz tā Z ass, radot lēciena kustību uz augšu. Visbeidzot, ir pienācis laiks izmantot izsaukuma deklarāciju, lai pēc 0,8 sekundēm izsauktu citu funkciju.

ja (!isJumping) {
ja (Ievade. GetKeyDown("kosmoss")) {
isJumping = taisnība;
stingrs korpuss. AddForce (transform.up * ātrums * 120);
rigidbody.angularVelocity = Vector3.zero;
Izsaukt("Move_Setter", 0.8 f);
}
}

Šī funkcija iestata mainīgo isJumping atpakaļ uz false, lai kustība/lēkšana atkal būtu iespējama, un 0,8 sekunžu aizkave neļauj tam aktivizēties pārāk ātri.

nederīgsMove_Setter() {
isJumping = viltus;
}

6. darbība: pārbaudiet savu rakstzīmju kontrollera kodu

Saglabājiet failu un dodieties atpakaļ uz Unity, lai pārbaudītu uzrakstīto kodu. Tāpat kā vairums kompilatoru, Unity sniedz informāciju par kļūdām un citām problēmām, kas saistītas ar jūsu kodu, lai būtu vieglāk redzēt, kas jums varētu būt jāmaina. Pilnu šī projekta kodu varat apskatīt mūsu vietnē GitHub lappuse.

Vienotības rakstzīmju kontrolieru izveide

Veidojot rakstzīmju kontrolieri Unity, varat izvēlēties no dažādām pieejām. Fizikas izmantošana ir viena no iespējām, taču, ja vēlaties, varat izmantot arī iebūvēto rakstzīmju kontrollera sistēmu.

Dažādu iespēju izpēte, piemēram, šī ir lielisks veids, kā uzzināt par tādiem rīkiem kā Unity.