Pakutanga, wedzera chinyorwa chitsva pahunhu hwako. Ipa zita rekuti PlayerMovement script. Kutanga tinoda chirevo kubva kuMutambi Movement script kusvika kuCharacter Controller. Iyo script inoudzwa kufambisa hunhu.
Pakutanga tinogadzira musiyano:
yeruzhinji CharacterController2D controller;
Ipapo iwe une sarudzo yekukwevera hunhu controller kunzvimbo yemahara.
Nezve kufamba, iko kutungamira uye nekumhanya kwekufamba kunofanirwa kutsanangurwa. Kune izvi iwe unoda kuiswa kubva kune mutambi:
Museve wekuruboshwe kana A = 1
Kiyi museve wekurudyi kana D = -1
Izvo zvakafanana nemutongi.
horizontalMove = Input.GetAxisRaw ("Horizontal");
Iyo yekuvandudza nzvimbo inoronga iyo yekuisa kubva kune mutambi.
FixedUpdate inoshandiswa kune fizikisi. Iri basa rinodiwa.
Gadzira imwe musiyano:
kuyangarara yakatwasukaMove = 0f;
FixedUpdate inofambisa hunhu.
void YakagadziriswaUpdate ()
{
controller.Move (yakatendereraMove, nhema, nhema);
}
Manyepo ekutanga anomiririra kuti mutambi haafanire kugumbuka uye wechipiri kuitira izvozvo haafanire kusvetuka.
Tsananguro yeMove inodikanwa muChidimbu Chekudhira Chinyorwa.
yeruzhinji isina Kufamba (famba uchifamba, bool crouch, bool jump)
{}
Sekusiyana kunotevera iwe kwaunoda:
yeruzhinji float runSpeed = 40f;
Iko kuiswa kubva kumutambi kunowedzerwa nekumhanya kumhanya:
horizontalMove = Input.GetAxisRaw ("Horizontal") * runSpeed;
Kana mutambi achienda kuruboshwe uye kurudyi, kufamba kwacho kunenge kuri -40 na40.
Iko kufamba kunowedzerwawo neTime.fixedDeltaTime.
Time.fixedDeltaTime ndiyo nguva kubvira yekupedzisira FixedUpdate basa rakadaidzwa. Izvi zvinojekesa kuti kufamba kunoitika nechiyero chimwe chete, zvisinei nekuti basa racho rinodaidzwa kangani. Nekudaro, kumhanya kwechimiro kwakafanana, zvisinei kuti ndeapi masisitimu kana mapuratifomu.
Kana iyo pawn ikawa, inogona kusimudzira zvishoma muvhu.
Ndicho chikonzero nei muRigidbody2D iko kwekukanganisika kwekutsvaga kuchinjika kubva ku discrete kuenda kuenderera.
Zvekusvetuka, zvinotariswa kuti tinodzvanya kiyi yekusvetuka kana kwete:
kana (input.GetButtonDown ("Jump")
{
kusvetuka = chokwadi;
}
Izvi zvinofanirwa kuitwawo muFixedUpdate basa. Ruzivo rwacho rwunotamisirwa nemusiyano weBoolean:
bool svetuka = nhema;
Iko kusvetuka kusvetuka kunowedzerwawo pasi peFixedUpdate.
Kana bhatani rekusvetuka radzvanywa, iyo PlayerMovement script inoendesa kumberi kune mutongi watinoda kusvetuka. Mushure maizvozvo zvichave zvakare
svetuka = nhema;
Izvi zvinoda kutsanangurwa sekuti isu hatidi kusvetuka nekusingaperi.
Rimwe dambudziko nderekuti kana munhu akaedza kusvetukira papuratifomu, inonamira ipapo. Hunhu hunofanira kubva hwatsvedza uye kuwira pasi pane izvi. Chinhu chefizikisi chinodiwa pane izvi. Pasi pePurojekiti, tinya-kurudyi Gadzira-> PhysicsMaterial2D
Ipa zita rekuti Kutsvedza. Gadza Kukakavara neBounciness kune 0. Tora iyo FizikisiMaterial uye udhonze iise pane izvo zvinhu kubva kune mutambi weBoxCollider.
Kana iwe wakatsanangura akati wandei makorokota kune protagonist, iwe unogona zvakare kugovera iyo fizikiki zvinhu kune vamwe vanokanganisa.
Iyo dhizaini yekhibhodi inotsanangurwa kuburikidza neUnited UnputManager. Unogona kuwana izvi pasi peProjekiti Zvirongwa.
Kurudyi tinya bhatani rekusvetuka uye sarudza Duplicate Array Element. Ipa zita rekuti "Crouch".
Kana ivo vatambi vachida kutamba nemiseve makiyi, ingo tsanangura imwe bhatani.
Dzokorora nhanho kubva pakusvetuka kusvika pakukotama:
Kana bhatani rekutsikitsira rasunungurwa, hunhu hunofanira zvakare kumira kugumbama. Saka hazvishande sekusvetuka. Kana ivo vatambi vachida kutamba nemiseve makiyi, ingo tsanangura imwe bhatani.
Wedzera zvinotevera mune yekuvandudza basa:
zvimwe kana (Input.GetButtonUp ("Crouch")
{
crouch = nhema;
}
Saka kuti zvikamu zvinoenderana zvionekwe mune anodzora hunhu, iwe unofanirwa kuzvichinja kubva zvakavanzika kuenda kuruzhinji:
Dhonza izvozvo Collideriyo inofanirwa kuvharwa mumunda unoenderana. Kana pane "ceiling" pamusoro pako, hunhu hwako hunononoka kana iwe ukadzvanya bhatani rekukotama.