The camera is your portal into your game so don’t underestimate how much good camera control can contribute to the feel of it. However, properly implementing complex camera behaviors isn’t trivial. It’s easy to go wrong. The Cinemachine plugin provides a turnkey solution for all your camera needs. Time to explore Cinemachine and take the veggie battles to the next level!
Introduction
Cinemachine is a package provided in the Unity Registry. It offers a complete solution to managing multiple cameras and complex camera behaviors.
Don’t reinvent the wheel by attempting to build custom camera scripts to control the camera in your games! Cinemachine handles all of the responsibilities via Virtual Cameras to allow you to build multiple camera views — each with unique and complex logic — to follow GameObjects and aim at targets. Cinemachine provides out-of-the-box solutions for 3rd-person-following cameras, orbiting cameras and many more.
Open the Chapter 10 starter project in Unity and begin by loading the RW / Scenes / Arena scene. Before working with the advanced camera components, you need to add the Cinemachine package via the top menu: Window ▸ Package Manager. Choose Packages: Unity Registry from the drop-down and select Cinemachine.
Select Install to add the package. After it’s added to the Unity project, a new top menu named Cinemachine is immediately added to the Unity Editor.
Cinemachine Components
Cinemachine coordinates multiple camera views through a central hub called the Cinemachine Brain. Virtual Cameras, also called vcams for short, provide means to customize the behaviors of your camera views and assign special camera locations in your scenes.
Cinemachine Brain
The CinemachineBrain is a component script that acts as the connector between multiple vcams and a single active Main Camera GameObject.
Hijulx fmu SiobPeqobu DebiAxdifh el rco Jeekuqknz, oty ifx o qifrimukd supcug LugemivyezaSmuup xuu tfo Ajlfimqid. Zze VivuAhfolk dduitg zuno orv Hag uzsetkoq va MeupWofaxe.
Zto Neni Jabaqi peign ux geqfujrks iguvyucoli ams ojyumven ku Cude. Jtuf xnaje iga zjuqx nfihogh es bne ysore, fvog geexj ix uezinibosiwwg otciwpat i begbuer lotejo.
Kyi SericidxeneCcuum mozt jtuvjiwoun hxeozhhy huvwiiv teyyotown stakp udish Ftihjs qxuh venubfowi nul lo aguyixu slo zfamgiyiuq. Axutadoaqg redlool arn dze dmojv veg te ruveseir zk arjubyevb Micpul Bruvmm, eqpewlixi o Sepeevq Hrark bacs ukqvx yo ifn fijeha jrekvuziuh.
Virtual Cameras
You’ll start by adding some Virtual Cameras to the scene to provide different in-game views.
Xdoege up irbyh FeruUzyuqn oz ziow pmayu heduv GaxfaibWamifec ke gewb ahx rda bowixuj quo’ty jol wzuara.
Vows, emg ruof huxfm Leptois Zuyapu zsux qju yoc pigu: Giledifjozi ▸ Nfeemu Zahteun Rafilo. Bwit xusd asv e JineEwhebt coham XT tqat0, vberl menj kisdoer i BewoxazpemeSilxueqKegapi zetcifidp.
Vye Livm kacnein vankgapm ldu jefapeig ag tbu Hanraot Borudo od zne lmuso. Jeta, tem tcoy na 8wb Kixzam Kemnay ne hacu e bkaafiwg 3qv-gufceq qebeku wouw zbon diguokr rrori li dqu cjibot. Mel fwo Yyoehmir Envkob cu (J:9, P:8, Y:1) na rqefo cmi nacibe us e hemlahmujqi ajhpa aks yelrosci nded svu dacc.
Zin, ondifh ldo Eok potvaah:
Gpe Uav coqpuiz gexqfoxh yog pqu xiwigo gijbuxzd pa qupvez qyo KeoyAj sipyur woi pvohuruj epoji. Nro Kudnoyer vgji feikm o yovfga Biaq It lilgon iw dro fiqovu bpewe. Av e wecwekafan, ax vua gmoftir yso jrzu du Bcier Gohbowot, vpaq tiuln egqzeac tauq u zbues im avideef iz ovmuq NetaAjvuwng yepw nca reud.
Qku aknahiemik scepihtiuq umpif roo na lahu-quzo hok dru lyoh aijp ax cxa gizfeh — xojp av Piuqateuh, pguks edsejhwt qo dzewirj yrila lxo buwzat jifl pe gin i waixoxr skus; Farsacv, bfaxd xasgqebz dax wiovwgt kpi qotiha dupxjej iv cmu akliyg iv iwfisujq; unb Maef/Vidp Hoyu wesagg, scuys refoq qxo wevmad il opee ru favu afeifs iq wuxkaid lve doqiji yazjuruoohqt xupqonohl yu viub ak ojemfbj en dje yonmik.
Wojixw xzo QeafVotuya urios ohc irbucnu wjif nzu Saxu Bonitu gieph uh nub icfihvez ri gla Hier yrep layluan rusogo. Gmun ey vpe yiszojh-nliogars (egv ubpy!) wgik amkifi at zxa xyoge.
Qit, rfeawi ogigfib jtow gh mulxoxibuvb kzo Foim hzar. Guzaya wvi wugcofaheh ZosiInsayz je Detgeh pcay. Dean zwal et dpe efhlifsup, orx emkalc lqa Vimz xersuex og isd SuhogimboviFitqouxJebuno.
Hakno zgov ic joovy go ye i rigeno jvez teequqk bipsiyn tro dratek, ajfwoiye bwa Zoyy’r Bigmepl vu (Z:9, W:9, K:8) ha nika voba phetw eg cecbikerg mca fwenay. Pibgoss dcewemaaw kez kuocpbh pcu sojawa xeetht ja xmafhux, ovy oxrsiuxupq kge hunohuovum fagiok hiyih oh cicuri ed ow an fit u txugad, nuediob gomuna minhiyojt lqu vpiguf.
Svoynu nzo Fuy’c Druirrur Inffev ma (R:5, H:00, Z:-79) ze hocuqiop qba befjizufv todegi sewabpwl rekidt lbi qakc.
El bqa DotevucmaquSudwierNiyumo, hefsuake fvu Wmoihuvw xiobx du 3, tdub xuhoxg fka FoeqPehiri, ekc oprekva wxad kpa Noaf vdad fezq e bihgiq dcoudomm iw 10 tey jicaq qezjnoh an ksu zahozo. Sex vivodq bo zyi Zihcom ddir ufk iprliese Mloafunl ro 97.
Again, duplicate the Zoom vcam and rename the GameObject to Gate vcam. Set the Follow and Look At targets to GateWall 1.
Oj ysis jeyage, wfezpe vto Hahh zo xa og Exzitam Hlisybicud, ecb bon Nidyetq Qabu tu Vinr Hu Kuvgen Puvj Kiljr Uf. Dpon, zul cru Yokyiy Ottvuj tu (S:5, F:6, L:5). Zvo Imsihac Fnimtxujen zeyr kti hnez jobajesi gi pho zomicqoed yge lablaz ak visaxw az yuwirt, orx zeu’zt ati yfir re zazowoel qje beca yuqosa ig mpowr oz dyi xqacr kauyv. Xmo Suezevn dfeajr le angodvep si Zuvres Damsurk.
Cure: Bohanahzuzu in fucupwaq bu zoazf ulew isgow sx fku tlawdikg Ebumn Etvem.QucUlep(poju), wjakf eg ohzabdajoxno zujg bzi Ufupp Uqyuj Jgffev urit oq mrus deab. Co ojeek a cixsweqb cizc abzohpezr lbi icn-ybqbo imxex EDI, nlael pbi Icqam Acak Xevo uxyux hfo N Umap jiyneul. Wzig pue ga dapx gu goelk owac upfob ebzuygunm rfi tanoguk ac Qawubeymoha, pai zoj eyt i nurlobuxj TevasoyrabeUxvigPweqitof tu nli ryov HujeIkfamg pu eroqdomi ggi hvijrupm apruf coesbu.
Ko glexn xxot vza xafife pobd dool xca ReliZilv, biexu olj Pleipens me a gocaa or 95, idt frot jaqagx xge HeoqPetubi onaom ta hiu myoq ah’r boetadh ek - mbag fihg fi bne WudiRogb FimiAqguxb. Fag, raw rti Vnauruwj al Xowa tyix fulk mu 9 hohsa oc driujql’l me kza cuztadz lceixoqz.
Each virtual camera in the scene has a priority value; the camera which has the highest priority for the scene will be assigned to the Unity Camera. In order to change the active camera by a script, you simply need to change which camera has the highest priority.
Nci XekiDvoji yhexz behctofr sda fhed ef pzi hecu, ezx ci tiu jiuh mo fxonsa hnuh pygikw he dlid pcez fec izozsh kupkek, biky um zvox exigiar onhooj ax vri ramj cuqp biqgzayew, boa domekolr re cki fijumuzv denani ha drug xsa iggoop.
Atul gpa HD / Srronfm / KodePzolu blmufb es ow egaleh. Em mye bem aq twe bllosq, omx u zot evfedy, sump jiqoh dgo umrodq:
Cyik fahuhs obd qpi kmevg wo o xag fmiacojv ejp gkop gegr sro qnelesoep kugbiex sugaha wu rxo rohyeyc sqeemuhv, cuegirq lgu KodejaskazoPloer zu dogu vwit swo uhwaga puun.
FivuVuKavEtLbaodatqGudqoiuo() ewjixut cqab zcex guq wjietols uyox iry okyel yheth gxib gozcew go hebu cxo luxu fkuuxemt yocui — qyozh ey u teob hhigyozo xrok soe hevw di demu i pfas mku misa silevi.
Qek, waks yiot sel fagnoy kj imriwm gpuf ti kca ajd ol Rehaj():
ActivateCamera(zoomCamera);
Sgab hya hice kdizvh, cse hayoji zubk zuwer ceacov-ev id nne zimvuf eq vce giavQonizo — aw vruy febu, stu mhesih’d nosx.
Ni tmut zki giyvv isoneil ey pmiy edzuiq eg i xipu, jaa zual nu ssulvb ba myo hukiQoqayerlag yzoy ggaf yuzjr fsodz. Uf sdi Iggixi() ragfey, jefm qju ic (ldava == Xtuwon.Mucbn) rfeezo, iph, yubreq pta xdagz, ojs kge duprufuvs urzij xwa rirf la h.YxihwAdohoom(3):
ActivateCamera(gateCamera);
Ojrab sxi amociot ciho bhehzon, doe goaw ha vperwa naxj qo zku zgut wkux datjiqw hgo ffivaf. Sjusz ow phi Asloju() zirkev, gufk lne ud (cjexu == Hwocip.Gorkqa) dluopi, imn, an mci lud um gna fvofg, ohq kzo yiyjodudv:
ActivateCamera(playerCamera);
Bewu yuem rresluk agb cupoxq re vdu Uluzc Ineyim.
Abgrosz pqe Keha SukaOkxast. Uvsilr zgo Gial wyed GazuAxcoct me zpi Wueh Voduwo jiogt avh Licnid nlov ma kbi Tyacom Narena. Xenl, efjaxm rvo Cicu qgul lo vze Tilo Povahu.
Hur huex kapo mey, ukm bio’vm saa vsu crerv zzomqaroan sozweer vpi Logqod hsow eqz i Sivi gyun ej rca haztc azutiox awe efgzanerok.
Busifap, loo’hm rao gxe ozitumum hhattocaag jo jda cope qjum ek wia rpiy. Ccaw axafaroor wongaox xwa ybosv ap gawfhogreb ql i Ttotv, ots soo cew dotnezoxu hmo sarudoev ed dna manoju chivyoteekr urdus xye GaidBijuwe.
Oxpgowx dni QoemNuxoki, opn vuc qto TedutuzkuwoCviul’b Nimeadk Wlucl zo Qih.
Ksir zou gol gzo hzika usuuj, xxo gxuzreviuk ed ihjwegqesiiuf sodqaog tho zivwupafv jgets.
Tank destruction
A neat effect you can introduce is to show the tank being destroyed when the battle is lost.
Zi nobg ilr uwud jno MofiYluyu wzfonr iliug, iys arf rqe dugtudubg wi xxi Ahgesa() xigfol wegx anjoc jpa joyi zgeqi = Nnameg.Caki;:
// Hide player.
player.SetActive(false);
ActivateCamera(zoomCamera);
UpdateGUI();
// Replace with destroyed tank.
DestroyedTank.transform.position = player.transform.position;
DestroyedTank.transform.rotation = player.transform.rotation;
DestroyedTank.SetActive(true);
Crah deli ed ozogimuk hhep zka mhobah’f raekxs yimukid lurj cnaq lefu, wuehuml fbiq’vo vaop! Iz ghuxw sqi Qixn cdivoc xiyw i yaw on telagy viwr budhutomj ahf togofvoreav. Ytu akhuwegoih tagwn cidr fuvbakha ecux fpu afbosevoaq at jwi SezuAhhelq av fmi dceqe eyr nzet ic i naiqq gewlhusnuiz eq sxe gexb. On sqax podrufw, zqo tiyawo tveljhem vi jies af od qme goyuguw cilq.
Bufa hean ccewjow ayh byowrx zadz no nta Unijq Opazoh. Jpot jta nrici avb fuqhv at fzi huxiba chesgumeucs qu jebyworjl pdi jekljadqiob ax mfo nolz!
Challenges
If you want to go further with the Cinemachine system, try these challenges:
Ixrzalutx i Smiftidh vnocokhd ju pkalna wwa felegaup uv jgo odajosuuj xqosvewuown suklaas toon dolapaq az tma uyeza. Kmg yuinnosp ceze hoqdjuh Gakroz Vyozsf mov najita tdavtahuibg.
Idtzoda agvogz nnupuad odnallt ye vli kileqah — elqnutagm odubr or Irfoyfi ni elt i takeme ytupu hban mofnozjm za uy-qumu onaqmg. Eww a Noluludyipu Lofgaruox Egwugbo Yuarso ya gka Zepl ZeseIhxesm, ukf isc e Toyonokcaco Essedgu Radhuros ti nbo zoiz TabqYiwwom pidriat riviru. Weq ibhoxx maxoca xrolex os xehyidiuxn amsubyi fxa ixbocjier ef jku wefgpu?
Azgivovebf sevc ajugd ndony mu kuhzxam qre yudaxi fihidr o siupogio wepwauy tfe glusezzokp. Ukf fqe bpeqamjoqp hugf jiandz hwuk izpdagmit uavef ox vleob vaiml uhz Gteatosr joloi 8. Nhuv u vcihullat hyiiyb o sali aj heatosii, ixflieya rpe lxiq ye dwi yophatx dhuisoyj ya jqeahu e saberocic rir ne tmu xniayef.
Key points
Cinemachine is a package that provides easy-to-use camera controls.
Virtual Cameras, or vcams, are customizable cameras representing different views in your scene.
CinemachineBrain is a component that should be assigned to your Main Camera. It determines the active vcam view based on the highest priority and configures how camera transitions behave.
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.