Exemplo n.º 1
0
    // 현재 상태 변경
    public void ChangeState(csFSMstate <T> newState)
    {
        // 현재 상태가 새로운 상태와 같다면 그대로 종료한다.
        if (curState == newState)
        {
            return;
        }

        // 이전 상태에 현재 상태를 저장한다.
        prevState = curState;

        // 현재 상태가 있다면 상태종료를 호출한다.
        if (curState != null)
        {
            curState.ExitState(monster);
        }

        // 현재 상태에 새로운 상태를 저장한다.
        curState = newState;

        // 새로운 상태가 있다면 상태시작을 호출한다.
        if (curState != null)
        {
            curState.EnterState(monster);
        }
    }
Exemplo n.º 2
0
 // 몬스터의 상태를 매개변수로 받은 상태로 전환한다.
 public void ChangeState(csFSMstate <csMonster> newState)
 {
     _State.ChangeState(newState);
 }
Exemplo n.º 3
0
 void Awake()
 {
     curState  = null;
     prevState = null;
 }
Exemplo n.º 4
0
 // 첫 상태를 초기화한다.
 public void Init(T monster, csFSMstate <T> initState)
 {
     this.monster = monster;
     ChangeState(initState);
 }