Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

Pionier în unele dintre cele mai vechi jocuri video din lume, sănătatea este un mecanism comun care persistă în multe dintre cele mai populare titluri de astăzi. Sănătatea face posibilă folosirea unor mecanisme complexe de luptă, crearea progresiei jucătorilor și facerea jocului mai intuitiv. Dar cum adaugi un sistem de sănătate la propriile tale jocuri?

Unity3D facilitează adăugarea elementelor de interfață 2D la jocurile 3D, așa că este un loc minunat pentru a începe explorarea barelor de sănătate pentru prima dată.

Ce vei învăța

La suprafață, acest proiect poate să nu pară complicat. În ciuda acestui fapt, va trebui să înțelegeți mai multe concepte cheie de codificare Unity3D pentru a crea o bară de sănătate funcțională. Aceasta înseamnă că există multe de învățat pe măsură ce parcurgeți acest proiect, inclusiv:

instagram viewer
  • Cum se creează elemente/sprite UI 2D în Unity3D.
  • Cum să editați componentele obiectului jocului cu cod.
  • Cum să partajați variabile între scripturi în Unity3D.

Pasul 1: Configurați-vă scena

Înainte de a începe să vă codificați bara de sănătate, aveți nevoie de o scenă cu un model de jucător pentru care să se aplice. Pentru a începe, ne puteți urmări ghid pentru controlerul de caractere Unity3D bazat pe fizică pentru a crea un model de jucător cu comenzi de bază.

Cu o scenă și un model de jucător la locul lor, este timpul să adăugați un element UI. Faceți clic dreapta în interiorul ferestrei Ierarhie și selectați UI > Imagine. Acest lucru va crea două elemente noi în ierarhia dvs.: un obiect părinte Canvas și un obiect copil Image. Schimbați numele obiectului copil în Healthbar. Alegeți o lățime, înălțime și poziție pentru bara de sănătate folosind inspectorul.

Puteți adăuga o imagine de interfață de utilizare puțin mai mare cu culoarea setată la negru pentru a acționa ca fundal/chenar pentru bara de sănătate. Doar asigurați-vă că este deasupra barei de sănătate din ierarhie, astfel încât să se afișeze în spatele ei.

Acest element de interfață funcționează ca fundație pentru bara de sănătate, dar aveți nevoie și de un sprite pentru a-l anima. Accesați panoul Proiect, faceți clic dreapta și selectați Crea > 2D > Sprites > Pătrat.

Selectați bara de sănătate din ierarhie și trageți sprite-ul pe care tocmai l-ați creat în caseta de selecție Imagine sursă din interiorul inspectorului. De asemenea, puteți schimba Tip imagine la umplut, Metoda de umplere la Orizontală și Umpleți Origine spre stanga. Acum, dacă rulați jocul și utilizați Completați cantitatea glisor, ar trebui să vedeți bara de sănătate micșorându-se și crește.

Dacă nu puteți vedea meniul componentei UI, accesați Fereastra > Manager de pacheteși asigurați-vă că aveți pachetul 2D instalat.

Pasul 2: Adăugați o variabilă de sănătate

Nu ar avea mare rost să creezi o bară de sănătate fără o variabilă de sănătate care să-i dicteze starea. Alte scripturi trebuie să poată accesa această variabilă și este logic să o punem undeva central. Adăugați-l la scriptul Character Control ca un float public:

publicpluti playerHealth = 1.0f;

Folosirea unui float pentru această variabilă înseamnă că puteți reprezenta cu ușurință orice procent de la 0 la 100, pentru a se potrivi cu variabila Cantitate de completare a imaginii UI din bara de sănătate. De exemplu, un playerHealth de 0,5f este 50% din lățimea barei de sănătate.

Pasul 3: Partajați variabile între scripturi în Unity

Variabilele operează de obicei în cadrul propriilor funcții și scripturi. Acest lucru le face inaccesibile din alte funcții și scripturi, cu excepția cazului în care luați măsuri pentru a spune codului unde să găsească variabilele cu care doriți să lucrați.

Începeți prin a crea un nou fișier script numit Health pentru a găzdui codul. Puteți să glisați și să plasați acest script pe elementul de interfață Healthbar creat în primul pas. Următorul cod intră în funcția void Update().

Acest proces începe cu găsirea obiectului de joc care deține variabila. În acest caz, este obiectul Character_Model:

GameObject Character_Model = GameObject. Găsi(„Model_Personaj”);

Apoi, este timpul să găsiți componenta de script care conține variabila cu care trebuie să lucrați.

Character_Control character_Control = Character_Model. GetComponent();

Și, în sfârșit, puteți extrage variabila specifică pe care o căutați. În acest caz, este variabila playerHealth pe care ați adăugat-o controlerului de caracter. Atribuiți acest lucru unei variabile float din scriptul curent numit currentHealth.

currentHealth = character_Control.playerHealth;

Este nevoie doar de câteva linii de cod pentru a obține variabila de care aveți nevoie și puteți aplica această metodă ori de câte ori aveți nevoie să accesați starea de sănătate a jucătorului dvs. Codul dvs. ar trebui să arate astfel odată ce ați terminat:

folosind Sistem. Colecții;
folosind Sistem. Colecții. Generic;
folosind UnityEngine;
folosind UnityEngine. UI;

publicclasăSănătate: Monocomportament
{
publicpluti actualHealth;

golstart()
{
}

golActualizați()
{
GameObject Character_Model = GameObject. Găsi(„Model_Personaj”);
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
}
}

Pasul 4: Programați obiectul jocului UI Health Bar

Acum că ați creat un element de interfață pentru bara de sănătate și aveți acces la variabila de sănătate a jucătorului, este timpul să le faceți să lucreze împreună. Pentru a începe, adăugați o variabilă statică privată care va conține componenta imagine a barei de sănătate:

privatstatic Bara de sănătate a imaginii;

Apoi, puteți atribui componenta imagine acestei variabile în cadrul funcției void Start(), care rulează o singură dată.

Healthbar = GetComponent();

Acum că aveți toate variabilele la locul lor, puteți utiliza codul de la pasul anterior pentru a seta lățimea de umplere a obiectului UI din bara de sănătate. Nu trebuie să efectuați nicio conversie aici; atât sănătatea jucătorului, cât și cantitatea de umplere a barei de sănătate sunt variabile float.

Healthbar.fillAmount = actualHealth;

Cu acest cod introdus, bara de sănătate se va umple în sus și în jos pe baza variabilei de sănătate găsită în codul Character_Control. Totuși, acest lucru este puțin plictisitor și cu siguranță s-ar descurca cu puțină culoare.

Începeți prin adăugarea unei noi culori pentru a face bara de sănătate o culoare verde deschis atunci când jucătorul are multă sănătate.

Culoare greenHealth = nou Culoare(0,6f, 1, 0,6f, 1);

Apoi, adăugați o declarație if pentru a verifica dacă starea de sănătate a jucătorului este peste 0,3f, adică 30% sau mai mult. Dacă este mai mare de 0,3f, setați bara de sănătate pentru a se potrivi cu culoarea pe care tocmai ați adăugat-o. Dacă este sub 0,3f, roșu bara de sănătate.

dacă (sănătate curentă >= 0,3f) {
Healthbar.color = greenHealth;
} altfel {
Healthbar.color = Culoare.roșu;
}

Pasul 5: Testarea codului

După cum puteți vedea din codul complet de mai jos, acest proiect este destul de simplu atunci când este totul împreună. Desigur, totuși, aveți nevoie de o modalitate de a vă testa codul.

folosind Sistem. Colecții;
folosind Sistem. Colecții. Generic;
folosind UnityEngine;
folosind UnityEngine. UI;

publicclasăSănătate: Monocomportament
{
privatstatic Bara de sănătate a imaginii;
publicpluti actualHealth;

golstart()
{
Healthbar = GetComponent();
}

golActualizați()
{
GameObject Character_Model = GameObject. Găsi(„Model_Personaj”);
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
Healthbar.fillAmount = actualHealth;

Culoare greenHealth = nou Culoare(0,6f, 1, 0,6f, 1);

dacă (sănătate curentă >= 0,3f) {
Healthbar.color = greenHealth;
} altfel {
Healthbar.color = Culoare.roșu;
}
}
}

Puteți adăuga o singură linie de cod la scriptul Character_Control pentru a face posibilă testarea. Ori de câte ori jucătorul apasă tasta W pentru a merge înainte, eliminați o cantitate mică de sănătate. Puteți adăuga același cod la orice script cu acces la variabila playerHealth pentru aceleași rezultate:

playerHealth -= 0,001f;

De asemenea, puteți lua în considerare adăugarea de active unice la proiectul dvs. Unity. Puteți găsiți active Unity gratuite pe web, oferindu-vă șansa de a vă anima proiectul fără a fi nevoie să cheltuiți bani.

Construirea barelor de sănătate în Unity3D

Jocul tău începe să prindă contur acum că ai instalat o bară de sănătate pentru personajul tău. Mai este mult de lucru, dar acum ar trebui să aveți unele dintre abilitățile cheie de care aveți nevoie pentru a începe să faceți progrese reale. Desigur, totuși, nu strică niciodată să citești mai multe ghiduri.