Napravi AI neprijatelje u Unity-u za jednu večer [2026]

Napravi AI neprijatelje u Unity-u za jednu večer [2026]

Cijena jednog Asset Store paketa je tvoja zarada večeras

Profesionalni sistemi za vještačku inteligenciju na Unity Asset Store-u koštaju između 45 i 120 eura. To je novac koji bacaš jer Unity već posjeduje ugrađen NavMesh sistem koji, uz malo C# koda, možeš podesiti za manje od tri sata. Ako znaš upaliti računar i napisati Debug.Log, večeras ćeš imati neprijatelja koji te juri, napada i inteligentno zaobilazi prepreke. Zaboravi na skupe skripte; tvoj jedini alat je C# i tvoja sposobnost da ne odustaneš kad prvi put vidiš crvenu grešku u konzoli. Treba ti Unity 2023.3 ili noviji, osnovno poznavanje C#-a i volja da isprljaš ruke kodom. Do kraja ovog teksta, uštedjet ćeš dovoljno za tri mjeseca pretplate na bolji hardver. Unity NavMesh konfiguracija za AI neprijatelje

NavMesh Basics: Ne crtaj putanju, ispeci je

Prije nego što napišeš ijednu liniju koda, tvoj teren mora biti ‘ispečen’ (Baked). AI ne vidi tvoje prelijepe teksture planina; on vidi samo ravnu površinu po kojoj može hodati. Označi sve statične objekte u sceni kao Static. Otvori Navigation prozor i klikni na Bake. Ako tvoj teren nakon toga nije prekriven plavim slojem, nešto si zabrljao. Vjerovatno si zaboravio označiti pod kao statičan ili ti je Agent Radius prevelik pa bot misli da ne može proći kroz vrata. Osjetit ćeš onaj specifičan miris zagrijanog procesora dok Unity kalkuliše putanje; to je zvuk napretka. Zapamti, ako ti je NavMesh loš, nikakav AI kod te neće spasiti. Bot će se samo besciljno zabijati u zidove dok ti ne pukne film. Koristi metrike performansi da provjeriš koliko ti ovo opterećuje scenu.

Pisanje koda koji ne puca: C# logika za vukove

Tvoj neprijatelj treba NavMeshAgent komponentu. To je njegov ‘mozak’ za kretanje. Ali on je glup bez tvoje skripte. Napravi novu C# skriptu pod nazivom EnemyAI.cs. Prva stvar koju moraš uraditi je referenciranje igrača. Ne koristi GameObject.Find u svakom frejmu jer će ti to ‘pojesti’ frejmove kao što rđa jede stari Golf. Koristi Transform referencu.

WARNING: Nikada ne stavljaj NavMeshAgent.destination unutar Update() funkcije bez tajmera. Pozivanje kalkulacije putanje 60 puta u sekundi će zamrznuti Unity i potencijalno srušiti tvoj editor. Koristi InvokeRepeating ili Coroutine da ažuriraš metu svake 0.2 sekunde. Šok od 120V struje je ništa naspram šoka kada izgubiš sat vremena nesnimljenog koda.

Ako zapneš kod pisanja čistog koda, pogledaj kako koristiti Copilot da ti očisti sintaksu.

Senzori i vidno polje: Kako da te bot stvarno ‘vidi’

Najveća greška početnika je što botu daju svespoznajnu moć. To nije AI, to je varanje. Bot treba da te vidi samo ako si mu u vidnom polju i ako nema zida između vas. Koristi Physics.Raycast. Zamisli to kao laserski snop koji ispaljuješ iz očiju bota. Ako taj laser udari u tvoj Layer (npr. ‘Player’), tek tada bot kreće u juriš. Ako laser udari u zid, bot nastavlja patrolirati. To je razlika između igre koja je zabavna i one koja frustrira igrača jer ga neprijatelji ‘osjećaju’ kroz tri sprata betona. Ako ti kod postane neuredan, uvijek možeš popraviti stari kod koristeći specijalizovane AI alate.

Why It Works: Fizika Raycast-a i tvoj CPU

Kada ispalimo Raycast, mi zapravo rješavamo linearnu jednačinu u 3D prostoru. Unity-ev fizikalni engine, PhysX, koristi matematičke optimizacije da provjeri presjek tog zraka sa hiljadama trouglova tvojih modela u milisekundama. Razlog zašto koristimo slojeve (Layers) je taj što ne želimo da zrak provjerava svaki list na drvetu, već samo bitne stvari. To drastično smanjuje broj kalkulacija. Bez ovoga, tvoja igra bi radila u 5 frejmova čim ubaciš tri neprijatelja. Razumijevanje ove osnove je ključno za svakog developera.

The Anatomy of a Screw-Up: Zašto tvoj bot besciljno udara u zid

Desit će se. Tvoj bot će se vrtiti u krug ili će stajati ispred zida i drhtati. To se zove ‘Path Jitter’. Razlog? Tvoj bot pokušava doći do tačke koja je tehnički unutar zida jer mu je Stopping Distance podešen na nulu. Ako ovo ne popraviš odmah, za šest mjeseci ćeš imati igru koju niko ne želi igrati jer su NPC-ovi iritantni. Podesi stoppingDistance na bar 1.5 metara. Također, provjeri da li tvoj bot ima RigidBody koji se bori protiv NavMeshAgent-a. To je kao da pokušavaš voziti auto dok ti neko drugi stalno vuče ručnu kočnicu. Isključi ‘Apply Root Motion’ na animatoru ako agent upravlja pozicijom. Ako ti se desi da model puca, provjeri ove tri česte greške koje važe i za game AI.

Finalni zahvati i optimizacija

Nemoj kupovati gotove modele dok ne završiš logiku. Koristi kocke i sfere. Kada sve proradi, slather-uj (naglasi) te skripte na prave modele. Ako tvoj AI troši previše resursa, razmisli o smanjenju frekvencije ažuriranja putanje. Nije sramota imati bota koji je malo sporiji u razmišljanju ako to znači da tvoja igra radi glatko na starijim laptopima. I na kraju, uvijek provjeri da li ti je uključen Obstacle Avoidance kvalitet na High ako imaš puno botova, inače će se sudarati kao pijani gosti na svadbi. Sretno kodiranje, majstore.

Slični tekstovi

Komentariši

Vaša email adresa neće biti objavljivana. Neophodna polja su označena sa *