Beispiel #1
0
    //Stateを変更する際に通す関数
    //自動でEnterとExitに通るようになっている
    public void ChangeState(StateTagList _tag, MonoBehaviour _mono)
    {
        IState _state = stateList.Getstate(_tag);

        state?.Exit(_mono);
        state = _state;
        state?.Enter(_mono);
    }
Beispiel #2
0
 //StateMachineを持たせているscriptのUpdateでこの関数を回してやる
 //引数に自分のGameObjectを持たせてやる
 public void Update(MonoBehaviour _mono)
 {
     if (state != null)
     {
         StateTagList _tag = state.Execute(_mono);
         if (_tag != StateTagList.none)
         {
             ChangeState(_tag, _mono);
         }
     }
 }
Beispiel #3
0
 //ここにタグを引数として入れればそのStateがかえってくる
 public IState Getstate(StateTagList _tag)
 {
     return(statelist[_tag]);
 }
Beispiel #4
0
 //この関数でStateリストの追加
 public void AddState(StateTagList _tag, IState _state)
 {
     statelist.Add(_tag, _state);
 }