Animator a spouštění animace. Log #6 (Unity)
14.03.2017

                V minulém logu jsem zmínil řádky anim.SetBool, teď se k ním vrátím. Moje postava má uložené nějaké animace. Já tyhle animace potřebuji spustit, právě v těch momentech, kde jsou v kódu. K tomu je Unity komponenta Animator, ten se opět zobrazí Window>Animator (pozor je tam ještě Animation, ten není potřeba). Animator v podstatě funguje tak, že má počáteční a konečný stav. Každý klip, nebo animaci, co do něj vložím je další stav. Mezi těmihle stavy jsou přechody, ty fungují na základě nějaké podmínky. 

              Teď v assets vytvořím novou složku "Controllers". Ve složce kliknu pravým a dám Animator Controller. Kontroler pak v inspektoru přetáhnu do komponenty Animator v políčku Controller. Když otevřu okno Animatoru a najdu si moje animace postavy v assets - rozkliknu moji postavu, budou tam mnou vytvořené animace (nastříhané klipy).

 

animations

 

                S otevřeným oknem Animatora do něj přetáhnu "Idle" a "Run" klip. To mi vytvoří dva stavy a automatický přechod mezi "Entry" a "Idle". Pokud teď spustím hru, postava přejde do stavu idle, ale nikdy z něj nevyjde. To protože jsem nedefinoval další přechody. Kliknu pravým na "Idle", vyberu "Make Transition" a levým kliknu na "Run". To mi vytvoří přechod mezi stavy. Totéž udělám na zpět. Stále mi ale postava nebude běhat, Animator totiž neví, kdy má přejít mezi stavy. V levém horním rohu je panel Parameters a v něm malé plusko, kliknu na něj a vyberu Bool. Vytvoří se mi nový parametr, ten pojmenuji "Run". Tohle jsou parametry, které právě předávám ve skriptu při volání funkcí jako SetBool(), SetFloat() a pod. s tím že tyto funkce mají dva parametry. Jedním je název parametru a druhým hodnota. Teď můžu nastavit přechodům podmínky za kterých se budou spouštět. Kliknu na přechod  Idle>Run otevře se nastavení v inspektoru, dole je políčko Conditions. Kliknu na plus, vyberu "Run" a dám "true". To znamené, že pokud je paramter "Run" true, aktivuje se přechod. Důležité je také odškrtnout nahoře "Has Exit Time", tento checkbox způsobuje, že přechod počká až doběhne animace stavu, ze kterého přechází, což je nežádoucí. Stejné nastavení provedu i pro opačný přechod. Výsledek je následující.

 

 

To stejné pak bude platit i pro útoky a ostatní animace. V dalším logu se zaměřím na kameru.