Game !




유니티로 애니메이션 메카님 적용을 하고 버튼 키를 빠르게 이것저것 누르다보면

이미 발동 된 트리거 애니메이션이 키를 놓았음에도 불구하고 그대로 발동될 때가 있다.


한마디로 트리거가 한발작 늦게 발동하는 상태



특정 조건에서 


animator.ResetTrigger("animation name");


이 코드를 사용하면 이전에 발동된 특정 트리거를 종료시킬 수있다.



아래는 간단한 예제




(점프 키 입력) 점프 트리거 애니메이션이 씹힌 후,

(앉기 키 입력) 앉기 이후 일어설 때 점프가 다시 발동된다고 가정



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
void Update()
{
    Animator anim_;
 
    if(Input.GetKey(KeyCode.Space))
    {
        anim_.SetTrigger("Jump");    
    }
 
    /// 여러개의 입력을 받는다...
    if(Input.GetKey....)
    ...
    ..
    .
 
    /// Jump 애니메이션이 끝나면 curState를 idle로 바꾼다고 가정
    
    if(cueState == myState.idle)
    {
        anim_.ResetTrigger("Jump");
    }
}
cs




앉기가 끝나고  idle 상태일 때 이전에 발동된 점프 트리거 발동을 취소하는 방법