Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Joidenkin maailman varhaisimpien videopelien edelläkävijänä terveys on yleinen mekaniikka, joka jatkuu monissa nykypäivän suosituimmista peleistä. Terveys mahdollistaa monimutkaisen taistelumekaniikan, pelaajien etenemisen ja intuitiivisemman tekemisen. Mutta miten voit lisätä terveysjärjestelmän omiin peleihin?

Unity3D: n avulla on helppo lisätä 2D-käyttöliittymäelementtejä 3D-peleihin, joten se on loistava paikka aloittaa terveyspalkkien tutkiminen ensimmäistä kertaa.

Mitä opit

Pinnalla tämä projekti ei ehkä vaikuta monimutkaiselta. Tästä huolimatta sinun on ymmärrettävä useita keskeisiä Unity3D-koodauskonsepteja luodaksesi toimivan terveyspalkin. Tämä tarkoittaa, että tässä projektissa on paljon opittavaa, mukaan lukien:

  • Kuinka luoda 2D-käyttöliittymäelementtejä/spritejä Unity3D: ssä.
  • Kuinka muokata pelin objektikomponentteja koodilla.
  • Muuttujien jakaminen komentosarjojen välillä Unity3D: ssä.

Vaihe 1: Aseta kohtaus

Ennen kuin voit aloittaa terveyspalkin koodaamisen, tarvitset kohtauksen, jossa on pelaajamalli, johon sitä voidaan soveltaa. Aloita seuraamalla meidän fysiikkapohjainen Unity3D-merkkiohjaimen opas luodaksesi pelaajamallin perusohjaimilla.

Kun kohtaus ja pelaajamalli ovat valmiina, on aika lisätä käyttöliittymäelementti. Napsauta hiiren kakkospainikkeella Hierarkia-ikkunaa ja valitse UI > Kuva. Tämä luo hierarkiaasi kaksi uutta kohdetta: Canvas-yläobjektin ja alatason kuvaobjektin. Muuta aliobjektin nimeksi Healthbar. Valitse terveyspalkin leveys, korkeus ja sijainti tarkastajalla.

Voit lisätä hieman suuremman käyttöliittymäkuvan, jonka väri on musta, toimimaan kuntopalkin taustana/reunana. Varmista vain, että se on hierarkian kuntopalkin yläpuolella, jotta se näkyy sen takana.

Tämä käyttöliittymäelementti toimii terveyspalkin perustana, mutta tarvitset myös spriten sen animointiin. Siirry Projekti-ruutuun, napsauta hiiren kakkospainikkeella ja valitse Luoda > 2D > Sprites > Neliö.

Valitse Terveyspalkki hierarkiasta ja vedä juuri luomasi sprite lähdekuvan valintaruutuun asetukset. Voit myös vaihtaa Kuvatyyppi täytettyyn, Täyttömenetelmä vaakasuoraan ja Täytä Alkuperä vasemmalle. Jos nyt käytät peliäsi ja käytät Täytä määrä liukusäädintä, sinun pitäisi nähdä terveyspalkkisi kutistuvan ja kasvavan.

Jos et näe käyttöliittymäkomponenttivalikkoa, siirry kohtaan Ikkuna > Paketinhallinta, ja varmista, että 2D-paketti on asennettu.

Vaihe 2: Lisää terveysmuuttuja

Ei olisi paljon järkeä luoda terveyspalkkia ilman terveysmuuttujaa, joka määrää sen tilan. Muiden skriptien on voitava käyttää tätä muuttujaa, ja on järkevää sijoittaa se jonnekin keskeiseen paikkaan. Lisää se Character Control -skriptiin julkisena kelluntana:

julkinenkellua PlayerHealth = 1.0f;

Kellukkeen käyttäminen tälle muuttujalle tarkoittaa, että voit helposti esittää minkä tahansa prosenttiosuuden välillä 0–100, jotta se vastaa käyttöliittymän kuntopalkin Täyttömäärä-muuttujaa. Esimerkiksi pelaajaterveys 0,5f on 50 % terveyspalkin leveydestä.

Vaihe 3: Jaa muuttujat Unityn komentosarjojen välillä

Muuttujat toimivat yleensä omissa funktioissaan ja komentosarjassaan. Tämä tekee niistä saavuttamattomissa muista funktioista ja komentosarjoista, ellet ryhdy toimiin kertoaksesi koodille, mistä muuttujat, joita haluat työstää, löytää.

Aloita luomalla uusi skriptitiedosto nimeltä Terve koodin säilyttämiseksi. Voit vetää ja pudottaa tämän skriptin ensimmäisessä vaiheessa luotuun Healthbar-käyttöliittymäelementtiin. Seuraava koodi menee void Update() -funktioon.

Tämä prosessi alkaa etsimällä muuttujan omistava peliobjekti. Tässä tapauksessa se on Character_Model-objekti:

GameObject Character_Model = GameObject. Löytö("Hahmomalli");

Seuraavaksi on aika löytää komentosarjakomponentti, joka sisältää muuttujan, jonka kanssa sinun on työskenneltävä.

Character_Control character_Control = Merkkimalli. GetComponent();

Ja lopuksi voit poimia tietyn etsimäsi muuttujan. Tässä tapauksessa se on playerHealth-muuttuja, jonka olet lisännyt merkkiohjaimeen. Määritä tämä kelluva muuttuja nykyisessä komentosarjassa nimeltä currentHealth.

currentHealth = character_Control.playerHealth;

Tarvitset vain muutaman rivin koodia saadaksesi tarvitsemasi muuttujan, ja voit käyttää tätä menetelmää aina, kun tarvitset pelaajasi terveyttä. Koodisi pitäisi näyttää tältä, kun olet valmis:

käyttämällä Järjestelmä. Kokoelmat;
käyttämällä Järjestelmä. Kokoelmat. yleinen;
käyttämällä UnityEngine;
käyttämällä UnityEngine. käyttöliittymä;

julkinenluokkaaTerveys: MonoBehaviour
{
julkinenkellua nykyinenTerveys;

mitätönalkaa()
{
}

mitätönPäivittää()
{
GameObject Character_Model = GameObject. Löytö("Hahmomalli");
Character_Control character_Control = Merkkimalli. GetComponent();
currentHealth = character_Control.playerHealth;
}
}

Vaihe 4: Ohjelmoi UI Health Bar -peliobjekti

Nyt kun olet luonut kuntopalkin käyttöliittymäelementin ja sinulla on pääsy pelaajan kuntomuuttujaan, on aika saada ne toimimaan yhdessä. Aloita lisäämällä yksityinen staattinen muuttuja, joka sisältää kuntopalkin kuvakomponentin:

yksityinenstaattinen Image Healthbar;

Voit sitten määrittää kuvakomponentin tälle muuttujalle void Start() -funktiossa, joka suoritetaan vain kerran.

Terveyspalkki = GetComponent();

Nyt kun sinulla on kaikki muuttujasi paikoillaan, voit käyttää edellisen vaiheen koodia määrittääksesi kuntopalkin käyttöliittymäobjektin täyttöleveyden. Sinun ei tarvitse suorittaa mitään muuntamista täällä; sekä pelaajan kunto että kuntopalkin täyttömäärä ovat kelluvia muuttujia.

Healthbar.fillAmount = nykyinenTerveys;

Kun tämä koodi on käytössä, kuntopalkki täyttyy ylös ja alas Character_Control-koodin terveysmuuttujan perusteella. Tämä on kuitenkin hieman tylsää, ja se voisi ehdottomasti tehdä jotain värejä.

Aloita lisäämällä uusi väri, jotta terveyspalkista tulee vaaleanvihreä, kun pelaajalla on paljon terveyttä.

Väri vihreäTerveys = Uusi Väri(0.6f, 1, 0.6f, 1);

Lisää seuraavaksi if-lauseke tarkistaaksesi, onko pelaajan terveys yli 0,3 f, eli 30 % tai enemmän. Jos se on suurempi kuin 0,3 f, aseta kuntopalkki vastaamaan juuri lisäämääsi väriä. Jos se on alle 0,3 f, käännä terveyspalkki punaiseksi.

jos (nykyinenTerveys >= 0.3f) {
Healthbar.color = vihreäTerveys;
} muu {
Healthbar.color = Color.red;
}

Vaihe 5: Koodin testaus

Kuten alla olevasta täydellisestä koodista näet, tämä projekti on melko yksinkertainen, kun se on kaikki yhdessä. Tietenkin tarvitset kuitenkin tavan testata koodisi.

käyttämällä Järjestelmä. Kokoelmat;
käyttämällä Järjestelmä. Kokoelmat. yleinen;
käyttämällä UnityEngine;
käyttämällä UnityEngine. käyttöliittymä;

julkinenluokkaaTerveys: MonoBehaviour
{
yksityinenstaattinen Image Healthbar;
julkinenkellua nykyinenTerveys;

mitätönalkaa()
{
Terveyspalkki = GetComponent();
}

mitätönPäivittää()
{
GameObject Character_Model = GameObject. Löytö("Hahmomalli");
Character_Control character_Control = Merkkimalli. GetComponent();
currentHealth = character_Control.playerHealth;
Healthbar.fillAmount = nykyinenTerveys;

Väri vihreäTerveys = Uusi Väri(0.6f, 1, 0.6f, 1);

jos (nykyinenTerveys >= 0.3f) {
Healthbar.color = vihreäTerveys;
} muu {
Healthbar.color = Color.red;
}
}
}

Voit lisätä yhden rivin koodia Character_Control-skriptiin, jotta testaus on mahdollista. Aina kun pelaaja painaa W-näppäintä siirtyäkseen eteenpäin, poista pieni määrä terveyttä. Voit lisätä saman koodin mihin tahansa skriptiin, jolla on pääsy playerHealth-muuttujaan saadaksesi samat tulokset:

playerHealth -= 0,001f;

Voit myös harkita ainutlaatuisen omaisuuden lisäämistä Unity-projektiisi. Sinä pystyt löytää ilmaisia ​​Unity-omaisuutta kaikkialla verkossa, mikä antaa sinulle mahdollisuuden piristää projektiasi ilman rahaa.

Terveyspalkkien rakentaminen Unity3D: ssä

Pelisi alkaa muotoutua nyt, kun sinulla on terveyspalkki hahmollesi. Työtä on vielä paljon, mutta sinulla pitäisi nyt olla joitakin keskeisiä taitoja, joita tarvitset todellisen edistymisen aloittamiseksi. Tietenkään ei ole koskaan haittaa lukea lisää oppaita.