Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Tervis on maailma varasemate videomängude teerajajaks olnud tavaline mehaanik, mis püsib paljudes tänapäeva populaarsemates mängudes. Tervis võimaldab kasutada keerulist võitlusmehaanikat, luua mängijate edenemist ja muuta teie mäng intuitiivsemaks. Aga kuidas lisada oma mängudele tervisesüsteem?

Unity3D muudab 2D kasutajaliidese elementide lisamise 3D-mängudele lihtsaks, seega on see suurepärane koht terviseribade esmakordseks avastamiseks.

Mida sa õpid

Pealtnäha ei pruugi see projekt keeruline tunduda. Sellest hoolimata peate töötava terviseriba loomiseks mõistma mitut peamist Unity3D kodeerimiskontseptsiooni. See tähendab, et selle projekti käigus on palju õppida, sealhulgas:

  • Kuidas luua Unity3D-s 2D kasutajaliidese elemente/spriite.
  • Kuidas muuta mänguobjekti komponente koodiga.
  • Kuidas Unity3D-s muutujaid skriptide vahel jagada.

1. samm: seadistage oma stseen

instagram viewer

Enne terviseriba kodeerimise alustamist vajate stseeni koos mängija mudeliga, millele see rakendub. Alustamiseks võite jälgida meie füüsikapõhine Unity3D märgikontrolleri juhend põhiliste juhtnuppudega mängijamudeli loomiseks.

Kui stseen ja mängija mudel on paigas, on aeg lisada kasutajaliidese element. Paremklõpsake hierarhiaaknas ja valige UI > Pilt. See loob teie hierarhias kaks uut üksust: lõuendi põhiobjekt ja kujutise alamobjekt. Muutke alamobjekti nimeks Healthbar. Valige inspektori abil oma terviseriba laius, kõrgus ja asend.

Terviseriba tausta/äärisena toimimiseks saate lisada veidi suurema kasutajaliidese pildi, mille värv on seatud mustaks. Lihtsalt veenduge, et see oleks hierarhias terviseriba kohal, nii et see kuvatakse selle taga.

See kasutajaliidese element töötab teie terviseriba alusena, kuid selle animeerimiseks on vaja ka spraiti. Minge projektipaanile, paremklõpsake ja valige Loo > 2D > Sprites > Ruut.

Valige hierarhiast terviseriba ja lohistage äsja loodud sprait inspektori sees olevasse lähtepildi valikukasti. Saate ka muuta Pildi tüüp Täidetud, Täitmise meetod horisontaalseks ja Täida Origin vasakule. Nüüd, kui käivitate oma mängu ja kasutate Täitke kogus liugur, peaksite nägema, et teie terviseriba väheneb ja kasvab.

Kui te ei näe kasutajaliidese komponendi menüüd, minge aadressile Aken > Paketihaldurja veenduge, et 2D-pakett oleks installitud.

2. samm: lisage tervisemuutuja

Terviseriba loomisel poleks palju mõtet, kui selle olekut ei dikteeriks paigal olev tervisemuutuja. Teised skriptid peavad sellele muutujale juurde pääsema ja see on mõistlik paigutada kuhugi kesksele kohale. Lisage see märkide juhtimise skripti avaliku ujuvana:

avalikujuk mängija Tervis = 1.0f;

Selle muutuja jaoks ujuki kasutamine tähendab, et saate hõlpsasti esitada mis tahes protsenti vahemikus 0 kuni 100, et see sobiks terviseriba kasutajaliidese kujutise muutujaga Täitekogus. Näiteks mängija tervis 0,5f on 50% terviseriba laiusest.

3. samm: jagage muutujaid Unity skriptide vahel

Muutujad töötavad tavaliselt oma funktsioonide ja skriptide piires. See muudab need muude funktsioonide ja skriptide jaoks kättesaamatuks, välja arvatud juhul, kui teete samme, et öelda koodile, kust leida muutujad, millega soovite töötada.

Alustuseks looge koodi majutamiseks uus skriptifail nimega Health. Saate selle skripti lohistada esimeses etapis loodud terviseriba kasutajaliidese elemendile. Järgmine kood läheb funktsiooni Värskenda () tühiseks.

See protsess algab muutujat omava mänguobjekti leidmisega. Sel juhul on see objekt Character_Model:

GameObject Character_Model = GameObject. Leia ("Tegelane_mudel");

Järgmiseks on aeg leida skriptikomponent, mis sisaldab muutujat, millega peate töötama.

Character_Control character_Control = Character_Model. GetComponent();

Ja lõpuks saate välja võtta konkreetse muutuja, mida otsite. Sel juhul on see muutuja playerHealth, mille lisasite oma märgikontrollerisse. Määrake see ujuvmuutujale praeguses skriptis nimega currentHealth.

currentHealth = iseloomu_juhtimine.mängija tervis;

Vajaliku muutuja hankimiseks kulub vaid mõni rida koodi ja saate seda meetodit rakendada alati, kui vajate juurdepääsu oma mängija tervisele. Kui olete lõpetanud, peaks teie kood välja nägema järgmine:

kasutades Süsteem. Kollektsioonid;
kasutades Süsteem. Kollektsioonid. Üldine;
kasutades UnityEngine;
kasutades UnityEngine. UI;

avalikklassTervis: MonoBehaviour
{
avalikujuk praeguneTervis;

tühineAlusta()
{
}

tühineVärskenda()
{
GameObject Character_Model = GameObject. Leia ("Tegelane_mudel");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = iseloomu_juhtimine.mängija tervis;
}
}

4. toiming: programmeerige kasutajaliidese terviseriba mänguobjekt

Nüüd, kui olete loonud terviseriba kasutajaliidese elemendi ja teil on juurdepääs mängija tervisemuutujale, on aeg panna need koos töötama. Alustuseks lisage privaatne staatiline muutuja, mis sisaldab teie terviseriba pildikomponenti:

privaatnestaatiline Image Healthbar;

Seejärel saate määrata kujutise komponendi sellele muutujale funktsioonis void Start(), mis töötab ainult üks kord.

Terviseriba = GetComponent();

Nüüd, kui kõik muutujad on paigas, saate terviseriba kasutajaliidese objekti täitelaiuse määramiseks kasutada eelmise sammu koodi. Siin ei pea te konversiooni läbi viima; nii mängija seisukord kui ka terviseriba täitekogus on ujuvmuutujad.

Healthbar.fillAmount = praeguneTervis;

Kui see kood on paigas, täitub teie terviseriba üles ja alla Character_Control koodis leiduva tervisemuutuja alusel. See on siiski veidi igav ja see võiks kindlasti sobida mõne värviga.

Alustage uue värvi lisamisega, et muuta terviseriba heleroheliseks, kui mängijal on palju tervist.

Värv rohelineTervis = uus Värv (0,6f, 1, 0,6f, 1);

Järgmisena lisage if-lause, et kontrollida, kas mängija tervis on üle 0,3 f, st 30% või rohkem. Kui see on suurem kui 0,3 f, seadke terviseriba äsja lisatud värvile vastavaks. Kui see on alla 0,3 f, muutke terviseriba punaseks.

kui (praegune tervis >= 0,3f) {
Healthbar.color = rohelineTervis;
} muidu {
Healthbar.color = Color.red;
}

5. samm: koodi testimine

Nagu näete allolevast täielikust koodist, on see projekt üsna lihtne, kui see on kõik koos. Muidugi on teil vaja koodi testimiseks.

kasutades Süsteem. Kollektsioonid;
kasutades Süsteem. Kollektsioonid. Üldine;
kasutades UnityEngine;
kasutades UnityEngine. UI;

avalikklassTervis: MonoBehaviour
{
privaatnestaatiline Image Healthbar;
avalikujuk praeguneTervis;

tühineAlusta()
{
Terviseriba = GetComponent();
}

tühineVärskenda()
{
GameObject Character_Model = GameObject. Leia ("Tegelane_mudel");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = iseloomu_juhtimine.mängija tervis;
Healthbar.fillAmount = praeguneTervis;

Värv rohelineTervis = uus Värv (0,6f, 1, 0,6f, 1);

kui (praegune tervis >= 0,3f) {
Healthbar.color = rohelineTervis;
} muidu {
Healthbar.color = Color.red;
}
}
}

Testimise võimaldamiseks saate skripti Character_Control lisada ühe koodirea. Kui mängija vajutab edasiliikumiseks klahvi W, eemaldage väike kogus tervist. Saate lisada sama koodi mis tahes skriptile, millel on juurdepääs muutujale playerHealth samade tulemuste saamiseks:

mängija tervis -= 0,001f;

Samuti võite kaaluda unikaalsete varade lisamist oma Unity projekti. Sa saad leida tasuta Unity vara kogu veebis, andes teile võimaluse oma projekti elavdada ilma raha kulutamata.

Terviseribade ehitamine Unity3D-s

Teie mäng hakkab ilmet võtma nüüd, kui teie tegelase jaoks on paigas terviseriba. Tööd on veel palju, kuid nüüd peaksid teil olema mõned põhioskused, mida vajate tõelise edu saavutamiseks. Muidugi ei tee kunagi valus rohkem juhendeid lugeda.