/// <summary> /// ステータスのENUMからクラスを取得する /// </summary> /// <param name="state">対象ステータス定義</param> /// <returns>ステータスクラス</returns> private StgPlayerAttackState GetState(StgPlayerAttackState.state state) { switch (state) { case StgPlayerAttackState.state.Power1: return(power1); case StgPlayerAttackState.state.Power2: return(power2); case StgPlayerAttackState.state.Power3: return(power3); case StgPlayerAttackState.state.Power4: return(power4); case StgPlayerAttackState.state.Power5: return(power5); case StgPlayerAttackState.state.Power6: return(power6); default: break; } return(null); }
/// <summary> /// ステータス更新処理 /// </summary> /// <param name="elapsedTime">前回実行からの経過時間</param> /// <param name="touchAction">タッチ入力クラス</param> /// <param name="dragAction">ドラッグ入力クラス</param> public void Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { StgPlayerAttackState.state state = current.Update(elapsedTime, touchAction, dragAction); if (state != currentState) { SetCurrentState(state); } }
/// <summary> /// currentStateを設定する /// </summary> /// <param name="state">設定するステータス</param> private void SetCurrentState(StgPlayerAttackState.state state) { if (state == currentState) { return; } // 現在のステータスから変更するのでイベント発生 current.OnStateNonActive(state); current = GetState(state); current.OnStateActive(currentState); currentState = state; }