logo

Разумевање префаб-а и инстанцирања

Инстанцирање и уништавање ликова или објеката је веома уобичајено у било којој игрици. Инстанцирање значи довођење објекта у постојање. Објекти се појављују или стварају или генеришу у игри, непријатељи умиру, елементи ГУИ нестају, а сцене се учитавају све време у игри.

Префабови су веома корисни када желите да инстанцирате компликоване ГамеОбјецтс или колекцију ГамеОбјецтс-а током времена извршавања. У поређењу са креирањем ГамеОбјецтс-а од нуле помоћу кода, инстанцирање префаб-ова коришћењем кода је боље и има много предности.

Хајде да разумемо шта су префабови; пошто се префабови сматрају важним за разумевање како инстанцијација функционише у Унити-у.

Префабс су као нацрти ГамеОбјецт-а. Дакле, можемо рећи, Префабс су копија ГамеОбјецт-а који се може дуплирати и ставити у сцену, чак и ако није постојао када је сцена направљена; другим речима, префабови се могу користити за динамичко генерисање ГамеОбјецтс-а.

Хајде да направимо префаб; за ово, потребно је да превучете жељени ГамеОбјецт из ваше хијерархије сцене у Ассетс пројекта.

Разумевање префаб-а и инстанцирања

Сада, да бисмо инстанцирали ГамеОбјецт, позивамо метод Инстантиате() у нашој скрипти. Овај метод је доступан у МоноБехавиоур-у, узима ГамеОбјецт као параметар, тако да зна који ГамеОбјецт да креира или дуплира. Такође има различите замене за промену трансформације новог инстанцираног објекта, као и родитељство.

Сада креирајте нову скрипту под називом Инстантиатор.цс и копирајте у њу следећи код.

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } } 

У горњем програму користили смо метод ГетКеиДовн класе Инпут да проверимо да ли је играч притиснуо одређено дугме током последњег кадра. Метод ГетКеиДовн() враћа тачно ако се у том оквиру притисне тастер наведен у КеиЦоде енум (који се користи за листање свих могућих тастера на стандардној тастатури).

Сачувајте скрипту. А сада, направите празан ГамеОбјецт тако што ћете десним тастером миша кликнути на сцену са картице Хијерархија.

Разумевање префаб-а и инстанцирања

Приложите ту датотеку скрипте (Инстантиатор.цс) новокреираној компоненти ГамеОбјецт-а са картице Инспектор.

Сада, у променљивој Диамонд превуците тај префаб који смо креирали.

Разумевање префаб-а и инстанцирања

Када сада покренете игру, притиском на размакницу ће се створити нови дијамантски објекат идентичан оном који смо користили за креирање префаб-а. Можете видети да је сваки дијамант креиран у хијерархији објеката. Разлог зашто не можете да их видите да се појављују у игри је тај што се за сада сви стварају тачно један преко другог. Али то можете проверити на картици Хијерархија. Сваки пут када притиснете размакницу, на картици ће се приказати као дијамант (клон).

Разумевање префаб-а и инстанцирања