Przerywanie animacji i rozpoczęcie następnej

Ogólne pytania na temat Unity3D

Przerywanie animacji i rozpoczęcie następnej

Postprzez Ether_141 » 05 Paź 2017, 20:15

Witajcie. Mam pytanie: w jaki sposób mogę przerwać trwającą animację jeśli zmienna w animatorze się zmieni z true na false?
Nie wiem czy zrozumiecie. Bo tak: mam włączoną animację "Idle", kiedy gracz zbliży się do przeciwnika, to wtedy zmienna
"isWalk" zmienia się na true a "isIdle" na false, no i jest ok, przechodzi z Idle na Walk i podąża za postacią, ale zanim zmieni się z Idle na Walk, to Walk musi się skończyć, a ja chce w momencie zmiany zmiennej przerwać obecną animację i od razu włączyć animację Walk. I tak samo z Attacking. Tutaj screen animatora i kod:

Image

Kod: Zaznacz wszystko
var player : Transform; 
var direction : Vector3;
var anim : Animator;

function Update ()
{

    if(Vector3.Distance(player.position, this.transform.position) < 7.5) {
        direction = player.position - this.transform.position;
        direction.y = 0;

        this.transform.rotation = Quaternion.Slerp(this.transform.rotation, Quaternion.LookRotation(direction), 0.1f);

        anim.SetBool("isIdle", false);
        if(direction.magnitude > 1) {
            this.transform.Translate(0,0,0.015f);
            anim.SetBool("isWalking", true);
            anim.SetBool("isAttacking", false);
        } else {
            anim.SetBool("isWalking", false);
            anim.SetBool("isAttacking", true);
        }
    } else {
        anim.SetBool("isIdle", true);
        anim.SetBool("isWalking", false);
        anim.SetBool("isAttacking", false);
        anim.SetBool("isDead", false);
    }

}
Ether_141
 
Posty: 152
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: Przerywanie animacji i rozpoczęcie następnej

Postprzez dawid621 » 05 Paź 2017, 20:41

W tranzycji z Idle do Walk, masz z prawej strony ekranu taki checkbox "Has Exit Time", odznacz go i będzie działać.

Druga sprawa, nie pisz kodu w ten sposób, tylko staraj się go trzymać w metodach. Bo teraz wystarczy ze dopiszesz trochę logiki w Update i już się w tym nie połapiesz.
dawid621
 
Posty: 109
Rejestracja: 07 Sie 2016, 18:52
Has thanked: 0 time
Been thanked: 0 time


Wróć do Wsparcie Unity

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 4 gości