
Jak wykonać kamerę CCTV w grze w Unity?
Spis treści
Kiedy już nauczycie się podstaw w Unity, naturalną rzeczą jest korzystanie ze sprawdzonych i przećwiczonych rozwiązań aby nic Was nie zaskoczyło. Nie wychodząc zatem zbyt daleko poza tą strefę komfortu w Unity, chciałbym wam pokazać dzisiaj ciekawe zastosowanie rodzaju assetu o nazwie RenderTexture. Oto jak, bez choćby jednej linii kodu wykonać kamerę monitoringu (CCTV) w waszej grze.
Czym właściwie jest RenderTexture (RT)
Zakładam, że potraficie tworzyć materiały, które następnie przypisujecie do obiektów. W waszych materiałach do slotu Base Map przypisujecie teksturę drewna, metalu czy innej faktury. RenderTexture to w pewnym sensie nic innego jak taka właśnie tekstura. Jednak powstaje ona dynamicznie w trakcie działania gry. Renderowany może być do niej np. obraz z kamery – i to właśnie wykorzystamy co naszego monitoringu.
Tworzymy RT
Podobniej jak inne assety, w panelu Project w edytorze Unity, RT znajdziemy w grupie Create.
Po stworzeniu RT np. o nazwie CCTV, będziemy widzieć w panelu Project jako czarny kwadrat. To dlatego, że jeszcze nic nie zostało do tej tekstury wyrenderowane.
Po zaznaczeniu assetu RT, w panelu Inspector zobaczycie kilka dość oczywistych opcji do przełączenia, ale na tą chwilę niczego nie trzeba przestawiać.
Teraz stwórzcie w scenie kamerę monitoringu oraz ekran na którym pojawi się obraz z kamery.
Menu > GameObject > Camera - aby stworzyć kamerę.
Menu > GameObject > 3D Object > Quad – aby stworzyć imitację ekranu LCD.
Moja scena wygląda mniej więcej tak jak poniżej. Ciemno-szary kwadrat to ekran. Kamera to zaznaczony obiekt, a białe elementy to przykładowe obiekty obserwowane przez kamerę.
Następnie w zaznaczonym obiekcie kamery, w panelu Inspector rozwijamy sekcję Output. Zobaczymy tam pozycję Output Texture i do tego pola przeciągamy naszą czarną teksturę z panelu Project.
Od tego momentu to co zobaczy nasza nowa kamera będzie w trybie ciągłym przepisywane do tekstury RT. A skoro mamy już teksturę z tym co widzi kamera, to wystarczy już tylko użyć naszego assetu RT jako tekstury na materiale dla ekranu LCD. Można też na skróty – jeżeli po prostu przeciągnę teksturę na obiekt ekranu, Unity samo stworzy materiał i przypnie teksturę do materiału a materiały do obiektu. Spróbujcie.
Scena powinna wyglądać teraz mniej więcej tak:
a materiał dla ekranu LCD tak jak poniżej w naszym assetem RT w slocie Base Map:
To wszystko! 😊
Oczywiście kamera i obiekty w trakcie gry mogą się poruszać a ten ruch będzie aktualizowany na RT.
Ot, taki prosty i szybki patent. Jeden z wielu, więc wypatrujcie kolejnych!
Zobacz kursy online
-
(101,40 zł najniższa cena z 30 dni)
101.40 zł169.00 zł (-40%) -
(59,60 zł najniższa cena z 30 dni)
74.50 zł149.00 zł (-50%) -
(79,60 zł najniższa cena z 30 dni)
99.49 zł199.00 zł (-50%) -
(59,60 zł najniższa cena z 30 dni)
74.50 zł149.00 zł (-50%) -
(34,65 zł najniższa cena z 30 dni)
49.50 zł99.00 zł (-50%) -
(27,65 zł najniższa cena z 30 dni)
39.50 zł79.00 zł (-50%) -
(20,65 zł najniższa cena z 30 dni)
29.50 zł59.00 zł (-50%) -
(31,60 zł najniższa cena z 30 dni)
43.44 zł79.00 zł (-45%)