Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Као пионир у неким од најранијих видео игара на свету, здравље је уобичајена механика која постоји у многим најпопуларнијим насловима данашњице. Здравље омогућава употребу сложене механике борбе, стварање напредовања играча и чини вашу игру интуитивнијом. Али како додати здравствени систем својим играма?

Унити3Д олакшава додавање 2Д елемената корисничког интерфејса у 3Д игре, тако да је одлично место за почетак истраживања здравствених трака по први пут.

Шта ћете научити

На површини, овај пројекат можда не делује компликовано. Упркос томе, мораћете да разумете неколико кључних Унити3Д концепта кодирања да бисте креирали радну траку здравља. То значи да има доста тога да научите док пролазите кроз овај пројекат, укључујући:

  • Како креирати 2Д УИ елементе/спрајтове у Унити3Д.
  • Како уредити компоненте објекта игре помоћу кода.
  • Како делити варијабле између скрипти у Унити3Д.

Корак 1: Поставите своју сцену

Пре него што почнете да кодирате своју траку здравља, потребна вам је сцена са моделом играча на коју ћете је применити. За почетак, можете пратити наше Унити3Д водич за контролер карактера заснован на физици да креирате модел играча са основним контролама.

Са сценом и моделом играча на месту, време је да додате елемент корисничког интерфејса. Кликните десним тастером миша унутар прозора Хијерархија и изаберите УИ > Слика. Ово ће створити две нове ставке у вашој хијерархији: родитељски објекат Цанвас и подређени објекат слике. Промените име подређеног објекта у Хеалтхбар. Изаберите ширину, висину и положај за своју траку здравља помоћу инспектора.

Можете додати мало већу слику корисничког интерфејса са бојом постављеном на црну да делује као позадина/ивица за траку здравља. Само се уверите да је изнад траке здравља у хијерархији тако да се приказује иза ње.

Овај елемент корисничког интерфејса ради као основа за вашу траку здравља, али вам је потребан и дух да бисте га анимирали. Идите на окно Пројецт, кликните десним тастером миша и изаберите Креирај > > Спритес > Квадрат.

Изаберите Хеалтхбар из хијерархије и превуците срајт који сте управо креирали у оквир за избор изворне слике унутар инспектора. Такође можете променити Тип слике до испуњена, Филл Метход на хоризонтално, и Филл Оригин оставити. Сада ако покренете своју игру и користите Попуните износ клизач требало би да видите како се ваша трака здравља смањује и расте.

Ако не можете да видите мени компоненте корисничког интерфејса, идите на Прозор > Менаџер пакета, и уверите се да имате инсталиран 2Д пакет.

Корак 2: Додајте променљиву здравља

Не би било пуно смисла у стварању здравствене траке без здравствене варијабле која би диктирала њено стање. Друге скрипте морају да могу да приступе овој променљивој и има смисла ставити је негде централно. Додајте га у скрипту за контролу знакова као јавни флоат:

јавностипловак плаиерХеалтх = 1.0ф;

Коришћење флоат-а за ову променљиву значи да можете лако да представите било који проценат од 0 до 100, како би се поклапали са сликом корисничког интерфејса траке здравља Филл Амоунт променљивом. На пример, здравље играча од 0,5ф је 50% ширине траке здравља.

Корак 3: Делите варијабле између скрипти у Унити-у

Променљиве обично раде у оквиру сопствених функција и скрипти. Ово их чини недоступним из других функција и скрипти осим ако не предузмете кораке да кажете коду где да пронађе променљиве са којима желите да радите.

Почните тако што ћете креирати нову датотеку скрипте под називом Здравље у којој ће се налазити код. Ову скрипту можете превући и испустити на Хеалтхбар УИ елемент креиран у првом кораку. Следећи код иде у функцију воид Упдате().

Овај процес почиње проналажењем објекта игре који поседује променљиву. У овом случају, то је објекат Цхарацтер_Модел:

ГамеОбјецт Цхарацтер_Модел = ГамеОбјецт. Нађи („Модел_карактера“);

Затим, време је да пронађете компоненту скрипте која садржи променљиву са којом треба да радите.

Цхарацтер_Цонтрол цхарацтер_Цонтрол = Цхарацтер_Модел. ГетЦомпонент();

И, коначно, можете издвојити одређену променљиву коју тражите. У овом случају, то је променљива плаиерХеалтх коју сте додали свом контролеру карактера. Доделите ово променљивој флоат у оквиру тренутне скрипте која се зове цуррентХеалтх.

цуррентХеалтх = цхарацтер_Цонтрол.плаиерХеалтх;

Потребно је само неколико редова кода да бисте добили променљиву која вам је потребна, а ову методу можете применити кад год вам је потребно да приступите здрављу вашег играча. Ваш код би требало да изгледа овако када завршите:

Користећи Систем. Цоллецтионс;
Користећи Систем. Збирке. Општи;
Користећи УнитиЕнгине;
Користећи УнитиЕнгине. УИ;

јавностикласаЗдравље: МоноБехавиоур
{
јавностипловак цуррентХеалтх;

празнинаПочетак()
{
}

празнинаажурирање()
{
ГамеОбјецт Цхарацтер_Модел = ГамеОбјецт. Нађи („Модел_карактера“);
Цхарацтер_Цонтрол цхарацтер_Цонтрол = Цхарацтер_Модел. ГетЦомпонент();
цуррентХеалтх = цхарацтер_Цонтрол.плаиерХеалтх;
}
}

Корак 4: Програмирајте објекат игре УИ Хеалтх Бар

Сада када сте креирали УИ елемент траке здравља и имате приступ променљивој здравља играча, време је да их натерате да раде заједно. За почетак додајте приватну статичку променљиву која ће садржати компоненту слике ваше здравствене траке:

приватнистатична Имаге Хеалтхбар;

Затим можете доделити компоненту слике овој променљивој у оквиру функције воид Старт(), која се покреће само једном.

Хеалтхбар = ГетЦомпонент();

Сада када имате све своје променљиве на месту, можете користити код из претходног корака да бисте подесили ширину пуњења УИ објекта траке здравља. Овде не морате да вршите конверзију; и здравље играча и износ пуњења траке здравља су променљиве са плутајућим.

Хеалтхбар.филлАмоунт = цуррентХеалтх;

Са овим кодом на месту, ваша трака здравља ће се пунити горе-доле на основу променљиве здравља која се налази у коду Цхарацтер_Цонтрол. Ово је, међутим, мало досадно, и дефинитивно би могло да дође до неке боје.

Почните додавањем нове боје да би трака здравља постала светло зелена када играч има пуно здравља.

Боја зеленаЗдравље = Нова Боја(0.6ф, 1, 0.6ф, 1);

Затим додајте иф наредбу да проверите да ли је здравље играча изнад 0,3ф, односно 30% или више. Ако је већи од 0,3ф, подесите траку здравља да одговара боји коју сте управо додали. Ако је испод 0,3ф, окрените траку здравља у црвену боју.

ако (тренутно здравље >= 0.3ф) {
Хеалтхбар.цолор = греенХеалтх;
} друго {
Хеалтхбар.цолор = Цолор.ред;
}

Корак 5: Тестирање кода

Као што можете видети из комплетног кода испод, овај пројекат је прилично једноставан када је све заједно. Наравно, потребан вам је начин да тестирате свој код.

Користећи Систем. Цоллецтионс;
Користећи Систем. Збирке. Општи;
Користећи УнитиЕнгине;
Користећи УнитиЕнгине. УИ;

јавностикласаЗдравље: МоноБехавиоур
{
приватнистатична Имаге Хеалтхбар;
јавностипловак цуррентХеалтх;

празнинаПочетак()
{
Хеалтхбар = ГетЦомпонент();
}

празнинаажурирање()
{
ГамеОбјецт Цхарацтер_Модел = ГамеОбјецт. Нађи („Модел_карактера“);
Цхарацтер_Цонтрол цхарацтер_Цонтрол = Цхарацтер_Модел. ГетЦомпонент();
цуррентХеалтх = цхарацтер_Цонтрол.плаиерХеалтх;
Хеалтхбар.филлАмоунт = цуррентХеалтх;

Боја зеленаЗдравље = Нова Боја(0.6ф, 1, 0.6ф, 1);

ако (тренутно здравље >= 0.3ф) {
Хеалтхбар.цолор = греенХеалтх;
} друго {
Хеалтхбар.цолор = Цолор.ред;
}
}
}

Можете додати једну линију кода скрипти Цхарацтер_Цонтрол да бисте омогућили тестирање. Кад год играч притисне тастер В за кретање напред, уклоните малу количину здравља. Можете додати исти код у било коју скрипту са приступом променљивој плаиерХеалтх за исте резултате:

плаиерХеалтх -= 0,001ф;

Такође можете размислити о додавању јединствених средстава свом Унити пројекту. Можете пронађите бесплатну имовину Унити-а широм веба, дајући вам прилику да оживите свој пројекат без потребе да трошите новац.

Изградња здравствених трака у Унити3Д

Ваша игра почиње да добија облик сада када имате постављену траку здравља за свог лика. Има још много посла да се уради, али сада би требало да имате неке од кључних вештина које су вам потребне да почнете да правите прави напредак. Наравно, међутим, никада не шкоди прочитати више водича.