Létrehozása játék a szemed
Egy korábbi közleményünkben, azt mondta, hogy szigorítani a játék Lua script nyelv különböző jelenetek. Azonban kölcsön egy ideig, rájöttünk, hogy néha az írás szkriptek válik elég slozhnochitaemy és slozhnootlazhivaemy kódot.
És gondolunk a vizuális megközelítés. Ebben a cikkben fogok beszélni ismeretségünk vizuális script eszköz Unity - «uScript», képességeit, és megmondja a mi opyte.Da, a fenti képen - a szkript és az áramkört.Bevezetés. Nos, nézzük meg, mi történt. Az alábbiakban a szkript, amely létrehozza a két karakter a képernyőn, rajz egy egyszerű párbeszédablak, amely a felhasználó 2 választható opciók és elágazás ebben meste.Iskhodnik LUA script vhs.HUD (0) vhs.SwitchZone ( «utca») helyi c1 = CharacterGfx ( ) c1.create ( «c1», «char_big») c1.mirror (0) c1.setpos ( «n_2») c1.animate ( «f_idle»)
helyi c2 = CharacterGfx () c2.create ( «c2», «char_black») c2.mirror (1) c2.setpos ( «n_3») c2.animate ( «f_idle») c2.preset ( «opp_lmb»)
char.animate ( «idle») char.mirror (1) char.setpos ( «n_1»)
c1.say ( «Kell a ruhákat, a csizma és a motocycle») c1.wait_bubble () c2.say ( «Ja!») c2.wait_bubble ()
char.animate ( «f_idle») char.mirror (0)
vhs.ShowMultiAnswer ( «Próbálja elkapni! (futni)», «nem lehet! (start harc)», ») switch_answer 2. eset: vhs.StartFight (77,7) végén,> a játék úgy néz ki, mint ez:
Ez volt az a pillanat, amit kétségbeesetten akart tenni.
Nézzük csak kapsz egy képernyőt, hogy mi lett a fent LUA script. (Kattintható kép)
Úgy néz ki, egy kicsit nehézkes, de ha egyszer világos. Mikor, ki és hol keletkezik, így, és ami a legfontosabb látható elágazás.
Például ebben az esetben a játékos választhat két lehetséges választ. A játék, úgy néz ki, mint ez:
De a rendszer - az alábbiak szerint:
És azonnal világos, hogy mi történik, ha kiválasztja №2 №1, és válaszoljon a választ. És ha egy ilyen ág több - sokkal inkább a rendszer nem veszíti el egyértelműség.
Elvek uScript. Nézzük gyorsan megy át, amit, mi áll áramkört. Valójában a fő modul (a uScript terminológia nevezik őket «csomópontok») - az esemény (ez általában kezdődik egy script vagy lánc), a cselekvés és változókat.
At action'on a bemenet (általában 1) és kimenet (ek). Például a legegyszerűbb lépéseket 1 bemenet és 1 kimenet. És egy szál állapot egység - nem lesz két kimenettel, például.
Alsó egység csatlakozik változókat. Triangle azt jelenti, hogy a rekord (output) kerül sor változó.
Például ebben a példában létrehozunk egy karaktert (a «létrehozása char» blokk), majd tegye rá a fényvisszaverő a «valódi» (a «Mirror» blokk):
By the way, az összes változó lehet egy nevet (ebben az esetben a "C1"). És az összes változó azonos típusú és azonos név szinkronizálva lesz egy script (rendszer). Ie A fenti példa nem teljesen azonos az e:
Ez úgy történik, hogy mentse meg attól, hogy húzza a kommunikációt a két képernyőn.
Ezen felül, ha kullancs «ki a Unity», a kiválasztott változó nyilvános lesz, és látható lesz a többi szkript (mind vizuálisan, mind saját kezű). A tömbök is támogatott.
Egy kis gyakorlat. Minden modult láthatjuk az ábrán - samopisnye. Mindkét íródtak 1 éjszakára. Nézzük meg őket először kod.Rassmotrim valami nagyon egyszerű. Például, akció, amely az úgynevezett «Kezdés küzdelem». Elkezdi a harc (sőt, a módszer logikai játék), és két paramétert - aydishnik aydishnik küzdelmet, és riválisa.
A jobb oldalon látható egy blokkot a konfigurációtól, ahol meghajtók értéket. A 3. blokk bemeneti paraméterek - CharacterGfx (maga a karakter, amit elveszítik az animáció), animáció (cím animáció) és Mirror (szükség zerkalenya). És van két hagyja el a blokkot: Out (kimenet azonnal) és késztermékek (csak akkor, ha az animáció alatt).
Ebben az esetben a változó „a Mirror” egy számlálóra a paraméterek „igen”, „nem” és a „nincs változás”, amely képviseli a legördülő listát a Properties ablakban.
A kód nem különösebben bonyolult lett:
alkalmazásával uScriptEventHandler = uScript_GameObject.uScriptEventHandler;
[FriendlyName ( «helyen»)] nyilvános rendezvény uScriptEventHandler helyen;
nyilvános enum BooleanSet ch.PlayAnimation (anim_name); if (tükör = BooleanSet.NoChange!) ch.SetMirror (tükör == BooleanSet.True); ch.OnAnimationEndedCallback + = () => Ez úgy történik, egyszerű. helyett vonalak nyilvános bool Out if (Out = null!) Out (ez az új System.EventArgs ()); Nem kell írni a kódot magad. Minden, amit a fent megadott - azt írta nekünk, hogy összegyűjtse, amire szükség van egy kényelmes helyen. De ez általában nem szükséges. A uScript van olyan dolog, úgynevezett «reflexiós». A gyakorlatban ez azt jelenti, hogy uScript automatikusan ellenőrzi a jelenetet, és húz belőle, minden tárgy, valamint a nyilvános módszerek és paraméterek, ami elérheti akár. És biztosítja számukra dostup.Naprimer, itt van, hogy a unit-reflexió GetComponent () metódus a kamera a jelenetet:
(A lap alján láthatjuk a blokk «ingatlanok», ahol vannak beállítva az összes paraméter a módszer)
Következtetések. Tulsa határozottan tetszett és mi juzat tovább. Valójában néhány ember kezeli, hogy segítsen neki levelet az egész játék, de ez a chur.Naskolko mélyen tudjuk zayuzat azt még nem tudom. Például még nem döntött arról, hogy felülírja a mi lua-orientált vizuális logika küldetést kiváltja.
De itt a scriptek vágott jelenetek és párbeszédek juzat egyedülálló.
Árnyoldala Egyszerre csak egy (ami annak az eredménye, egy plusz) - ahogy korábban írtam, a uScript alakítja vizuális séma C # kódot. És ezért, minden egyes módosítás a rendszer lenne szükség újrafordítás projekt.
A többi - Erősen ajánlott, hogy közelről, hogy ezt az eszközt, ha azt szeretné, megírt egy hasonló logika. Tehát, amennyire én tudom, ez az eszköz aktívan használják írásához AI.
By the way, ha szükség van rá a scriptek a viselkedése és kölcsönhatása tárgyak a helyszínen (pl flip-flop ütközés, stb), akkor megnézzük játékmester. Ő jobban összpontosít az esemény modell.
Minden cikket a sorozat:
Idea Vision, a választás a beállítást, állványok, terjesztési modellek és hasonlók árnyékolók kép stilizáció alatt CRT / LCD csavarozott programozási nyelv a Unity (UniLua) shader halványulni a palettán (a la NES) Részösszeg (prototípus) Beszéljünk PR indie 2D-animációs játékok Unity ( «, mint a flash") A vizuális script jeleneteket a Unity (uScript)