示例#1
0
    void EnemyFoucusPhase()
    {
        // ユニットの移動前の座標を保存
        oldFocusUnitPos = focusUnitObj.transform.position;

        // 移動できる範囲で、ターゲットに攻撃できる場所のリストを取得する
        List <Vector3> attackLocationList = Main.GameManager.GetEnemyAI().GetAttackLocationList(phaseManager.activeAreaManager.activeAreaList, focusUnitObj, playerUnitObj);

        // 攻撃対象に対して、攻撃できる場所がなかった場合、行動終了とする
        if (attackLocationList.Count < 1)
        {
            // このターンは移動しない
            focusUnitObj.GetComponent <UnitInfo>().Moving(true); // 行動済み
            focusUnitObj = null;
            phase        = Enums.PHASE.RESULT;
            return;
        }
        // TODO とりあえず一つ目を目的地とする
        Vector3 movePos = attackLocationList[0];

        Debug.Log("movePos:" + movePos);

        // 目標までのルートを取得し設定
        Main.GameManager.GetRoute().CheckShortestRoute(ref phaseManager, movePos);
        focusUnitObj.GetComponent <MoveController>().SetMoveRoots(moveRoot);

        // ターンとUI切り替え
        phase = Enums.PHASE.MOVE;
    }
示例#2
0
    void EnemyStartPhase()
    {
        // ターン終了ボタンの無効化
        turnEndBtn.interactable = false;


        if (turnImageAnim == null)
        {
            // ターン切り替えSE↓
            audioManager.TurnChengeSE();

            // ターン開始アニメーションの再生
            turnImageAnim = enemyTurnImage.gameObject.GetComponent <Animator>();
            enemyTurnImage.gameObject.SetActive(true);
        }
        else
        {
            // アニメーションが終了したらターンを開始する
            if (!(turnImageAnim.GetCurrentAnimatorStateInfo(0).normalizedTime < 1.0f))
            {
                // 敵のターンBGMへ変更↓
                audioManager.EnemyTurnBGM();

                // ターンとUI切り替え
                phase = Enums.PHASE.STANDBY;
                //selectUnitInfoUI.SetActive(false);
                //cellInfoUI.SetActive(false);
                enemyTurnImage.gameObject.SetActive(false);
                //cursorObj.SetActive(false);
                turnImageAnim = null;
            }
        }
    }
示例#3
0
 void EnemyEndPhase()
 {
     // 自軍ユニットを全て未行動に戻す
     Main.GameManager.GetUnit().UnBehaviorUnitAll(Enums.ARMY.ENEMY);
     // プレイヤーターンに切り替える
     TurnChange(Enums.ARMY.ALLY);
     phase = Enums.PHASE.START;
 }
示例#4
0
 // 攻撃ボタン処理
 public void OnAttackBtn()
 {
     // ターンとUI切り替え
     phase = Enums.PHASE.BATTLE_STANDBY;
     activeArea.SetActive(false);
     //activeUI.SetActive(false);
     //rootArea.SetActive(false);
     cursorObj.SetActive(true);
 }
示例#5
0
    /// <summary>
    /// バトルキャンセル処理
    /// </summary>
    void OnCancelBattleStandby()
    {
        activeAreaManager.RemoveAttackArea();

        // ターンとUIの切り替え
        phase = Enums.PHASE.MOVE;
        battleStandbyUI.SetActive(false);
        //cursorObj.SetActive(false);
        moveMarkerManager.SetActive(true);
    }
示例#6
0
    void MyStandbyPhase()
    {
        turnEndBtn.interactable = true;
        // カーソルが更新されたら
        if (cursorPos != oldCursorPos)
        {
            // カーソルの更新
            oldCursorPos = cursorPos;

            // セル情報の更新
            cellInfoUI.GetComponent <CellInfo>().SetData(Main.GameManager.GetMap().field.cells[-(int)cursorPos.y, (int)cursorPos.x]);

            // ユニット情報の更新
            if (Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos))
            {
                selectUnitInfoUI.GetComponent <SelectUnitInfo>().ShowUnitInfo(Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos));
            }
            //else
            //selectUnitInfoUI.GetComponent<SelectUnitInfo>().CloseUnitInfo();
        }

        // クリック処理
        if (Input.GetMouseButtonDown(0))
        {
            // シーン削除
            //SceneManager.UnloadScene("conversation");


            // 未行動の自軍ユニットであればフォーカスし、アクティブエリアを表示する
            if (Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos) != null && activeAreaManager.activeAreaList == null)
            {
                if (Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos).aRMY == Enums.ARMY.ALLY)
                {
                    if (!Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos).isMoving())
                    {
                        // フォーカスユニットの取得
                        focusUnitObj = Main.GameManager.GetUnit().GetMapUnitObj(cursorPos);
                        activeAreaManager.CreateActiveArea(focusUnitObj, true);

                        // クリック時SE↓
                        audioManager.ClickSE();

                        // ターンとUIの切り替え
                        phase = Enums.PHASE.FOCUS;
                        //selectUnitInfoUI.SetActive(false);
                        cellInfoUI.SetActive(false);
                        activeAreaManager.activeAreaObj.SetActive(true);
                        moveMarkerManager.SetActive(true);
                    }
                }
            }
        }
    }
示例#7
0
    void EnemyMovePhase()
    {
        // 移動が終わったらフェイズを切り替える
        if (focusUnitObj.GetComponent <MoveController>().IsMoved())
        {
            // Unitリストの座標を更新
            focusUnitObj.GetComponent <UnitInfo>().Moving(true);
            Main.GameManager.GetUnit().MoveMapUnitObj(oldFocusUnitPos, focusUnitObj.transform.position);
            //Debug.Log(focusUnitObj);
            //Debug.Log(focusUnitObj.transform.position);

            // フェイズの切り替え
            phase = Enums.PHASE.BATTLE_STANDBY;
        }
    }
示例#8
0
    /// <summary>
    /// ターン開始時
    /// </summary>
    void MyStartPhase()
    {
        // ターン終了ボタンの有効化
        turnEndBtn.interactable = true;

        if (turnImageAnim == null)
        {
            // ターン開始アニメーションの再生
            turnImageAnim = playerTurnImage.gameObject.GetComponent <Animator>();
            playerTurnImage.gameObject.SetActive(true);


            // ターン切り替えSE↓
            audioManager.TurnChengeSE();

            // ランダムな未行動ユニット1体の座標にカーソルを合わせる
            focusUnitObj = Main.GameManager.GetUnit().GetUnBehaviorRandomUnit(Enums.ARMY.ALLY);
            cursorPos    = focusUnitObj.transform.position;
            cursorObj.transform.position = cursorPos;
        }
        else
        {
            // アニメーションが終了したらターンを開始する
            if (!(turnImageAnim.GetCurrentAnimatorStateInfo(0).normalizedTime < 1.0f))
            {
                // 自軍のターンBGM再生
                audioManager.PlayerTurnBGM();

                // ターンとUIの切り替え
                List <GameObject> list = Main.GameManager.GetUnit().GetUnBehaviorUnits(Enums.ARMY.ALLY);
                if (list.Count == 0)
                {
                    phase = Enums.PHASE.END;
                }
                else
                {
                    phase = Enums.PHASE.STANDBY;
                }

                selectUnitInfoUI.SetActive(true);
                cellInfoUI.SetActive(true);
                playerTurnImage.gameObject.SetActive(false);
                activeAreaManager.activeAreaObj.SetActive(true);
                cursorObj.SetActive(true);
                turnImageAnim = null;
            }
        }
    }
示例#9
0
    /// <summary>
    /// ユニット同士の戦闘終了後
    /// </summary>
    void MyResultPhase()
    {
        // アニメーションを元に戻す
        if (focusUnitObj)
        {
            focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);
        }

        // 未移動であれば移動済みとする
        if (!focusUnitObj.GetComponent <UnitInfo>().isMoving())
        {
            Main.GameManager.GetUnit().MoveMapUnitObj(oldFocusUnitPos, focusUnitObj.transform.position);
            focusUnitObj.GetComponent <UnitInfo>().Moving(true); // 行動済み
        }
        // グレースケールにする
        focusUnitObj.GetComponent <EffectController>().GrayScale(true);

        activeAreaManager.RemoveActiveArea();
        activeAreaManager.RemoveAttackArea();
        moveMarkerManager.RemoveMarker();
        focusUnitObj = null;

        // ターンとUIの切り替え
        List <GameObject> list = Main.GameManager.GetUnit().GetUnBehaviorUnits(Enums.ARMY.ALLY);

        if (list.Count == 0)
        {
            phase = Enums.PHASE.END;
        }
        else
        {
            phase = Enums.PHASE.STANDBY;
        }

        //activeMenuUI.SetActive(false);
        battleStandbyUI.SetActive(false);
        cursorObj.SetActive(true);

        // 各ボタンの無効化
        attackBtn.interactable   = false;
        recoveryBtn.interactable = false;
        waitingBtn.interactable  = false;

        // 敵キャラ数チェック
        //EnemyCheck();
    }
示例#10
0
    void MyFoucusPhase()
    {
        // 移動マーカの更新
        if (cursorPos != oldCursorPos)
        {
            // カーソルの更新
            oldCursorPos = cursorPos;
            moveMarkerManager.AddMarker(ref phaseManager);
        }

        if (Input.GetMouseButtonDown(0))
        {
            // アクティブエリア(移動可能マス)を選択されたら移動する
            if (activeAreaManager.activeAreaList[-(int)cursorPos.y, (int)cursorPos.x].aREA == Enums.AREA.MOVE)
            {
                // 他ユニットがいなければ
                if (!Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos))
                {
                    // ユニットの移動前の座標を保存
                    oldFocusUnitPos = focusUnitObj.transform.position;

                    // 移動可能エリアがクリックされたら移動する
                    focusUnitObj.GetComponent <MoveController>().SetMoveRoots(moveRoot);

                    // ターンとUI切り替え
                    phase = Enums.PHASE.MOVE;
                    moveMarkerManager.SetActive(false);
                    //cursorObj.SetActive(false);
                    activeAreaManager.activeAreaObj.SetActive(false);
                }
            }
            else // アクティブエリア外をクリックされたらフォーカスを外す
            {
                // アニメーションを元に戻す
                focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);
                focusUnitObj = null;

                // ターンとUI切り替え
                phase = Enums.PHASE.STANDBY;
                moveMarkerManager.RemoveMarker();
                activeAreaManager.RemoveActiveArea();
            }
        }
    }
示例#11
0
    /// <summary>
    /// 行動終了ボタン処理
    /// </summary>
    public void MoveCansel()
    {
        // アニメーションを元に戻す
        //if (focusUnit) focusUnit.GetComponent<MoveController>().NotFocuse();

        // ユニットの座標を元に戻す
        focusUnitObj.GetComponent <MoveController>().DirectMove(oldFocusUnitPos);

        activeAreaManager.RemoveActiveArea();
        activeAreaManager.RemoveAttackArea();
        moveMarkerManager.RemoveMarker();
        focusUnitObj = null;

        // ターンとUIの切り替え
        Debug.Log("TURN.SELECT");
        phase = Enums.PHASE.STANDBY;
        //activeUI.SetActive(false);
        cursorObj.SetActive(true);
    }
示例#12
0
    void EnemyResultPhase()
    {
        // 敵の向きを元に戻す
        if (playerUnitObj)
        {
            playerUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);
        }

        if (focusUnitObj)
        {
            // アニメーションを元に戻す
            focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);

            // グレースケールにする
            focusUnitObj.GetComponent <EffectController>().GrayScale(true);

            // 未移動であれば移動済みとする
            if (!focusUnitObj.GetComponent <UnitInfo>().isMoving())
            {
                Main.GameManager.GetUnit().MoveMapUnitObj(oldFocusUnitPos, focusUnitObj.transform.position);
                focusUnitObj.GetComponent <UnitInfo>().Moving(true); // 行動済み
            }
        }
        activeAreaManager.RemoveActiveArea();
        activeAreaManager.RemoveAttackArea();
        focusUnitObj = null;

        // ターンとUIの切り替え
        List <GameObject> list = Main.GameManager.GetUnit().GetUnBehaviorUnits(Enums.ARMY.ENEMY);

        if (list.Count == 0)
        {
            phase = Enums.PHASE.END;
        }
        else
        {
            phase = Enums.PHASE.STANDBY;
        }


        //Main.GameManager.GetUnit().CheckEnemyUnits();
        //Main.GameManager.GetUnit().CheckPlayerUnits();
    }
示例#13
0
    void EnemyStandbyPhase()
    {
        GameObject checkUnitObj = Main.GameManager.GetUnit().GetUnBehaviorRandomUnit(Enums.ARMY.ENEMY);

        if (checkUnitObj != null)
        {
            // アクティブエリアの取得
            activeAreaManager.CreateActiveArea(checkUnitObj, true);

            // 行動範囲内にて攻撃できるプレイヤーUnitを探索する
            List <GameObject> targetList = Main.GameManager.GetEnemyAI().GetAttackTargetList(phaseManager.activeAreaManager.activeAreaList);

            playerUnitObj = Main.GameManager.GetEnemyAI().GetAttackTargetSelection(checkUnitObj.GetComponent <UnitInfo>(), targetList);
            if (playerUnitObj != null)
            {
                // 行動範囲内に攻撃できる対象がいる場合は、移動して攻撃する
                focusUnitObj = checkUnitObj;

                phase = Enums.PHASE.FOCUS;
            }
            else if (false)
            {
                // TODO 攻撃が届かないので、一番近いプレイヤーユニットに近づく
            }
            else
            {
                // このターンは移動しない
                checkUnitObj.GetComponent <UnitInfo>().Moving(true); // 行動済み
                focusUnitObj = null;
                phase        = Enums.PHASE.RESULT;
            }
        }
        else
        {
            phase = Enums.PHASE.END;
        }
    }
示例#14
0
    void EnemyBattlePhase()
    {
        if (!isBattle)
        {
            while (true)
            {
                // こちらの攻撃
                if (0 < enemyAttackCount)
                {
                    // 必殺の検証
                    enemyAttackState = Main.GameManager.GetCommonCalc().ProbabilityDecision(enemyDeathblow) ? Enums.BATTLE.DEATH_BLOW : Enums.BATTLE.NORMAL;

                    // 通常攻撃命中判定
                    if (enemyAttackState != Enums.BATTLE.DEATH_BLOW)
                    {
                        enemyAttackState = Main.GameManager.GetCommonCalc().GetHitDecision(enemyAccuracy) ? Enums.BATTLE.NORMAL : Enums.BATTLE.MISS;
                    }

                    // 通常攻撃か必殺が発生したら攻撃イベントとして登録する
                    AttackEvent attackEvent = gameObject.AddComponent <AttackEvent>();
                    attackEvent.phaseManager = this;

                    attackEvent.myUnitObj     = enemyUnitObj;
                    attackEvent.myAttackPower = enemyAttackPower;
                    attackEvent.myAttackState = enemyAttackState;

                    attackEvent.targetUnitObj = playerUnitObj;
                    attackEvent.targetHPText  = textMyHP;

                    battleManager.AddEvent(attackEvent);

                    // SEの再生
                    //audioManager.AttackSE();

                    enemyAttackCount--;
                }

                // プレイヤーUnitの反撃
                if (0 < myAttackCount)
                {
                    // 必殺の検証
                    myAttackState = Main.GameManager.GetCommonCalc().ProbabilityDecision(myDeathblow) ? Enums.BATTLE.DEATH_BLOW : Enums.BATTLE.NORMAL;

                    // 通常攻撃命中判定
                    if (myAttackState != Enums.BATTLE.DEATH_BLOW)
                    {
                        myAttackState = Main.GameManager.GetCommonCalc().GetHitDecision(myAccuracy) ? Enums.BATTLE.NORMAL : Enums.BATTLE.MISS;
                    }

                    // 通常攻撃か必殺が発生したら攻撃イベントとして登録する
                    AttackEvent attackEvent = gameObject.AddComponent <AttackEvent>();
                    attackEvent.phaseManager = this;

                    attackEvent.myUnitObj     = playerUnitObj;
                    attackEvent.myAttackPower = myAttackPower;
                    attackEvent.myAttackState = myAttackState;

                    attackEvent.targetUnitObj = enemyUnitObj;
                    attackEvent.targetHPText  = textEnemyHP;

                    battleManager.AddEvent(attackEvent);

                    // SEの再生
                    //audioManager.AttackSE();

                    myAttackCount--;
                }

                // 戦闘イベント登録終了
                if (myAttackCount <= 0 && enemyAttackCount <= 0)
                {
                    break;
                }
            }

            // 敵をこちらに向かせる
            //Vector3 distance = playerUnitObj.transform.position - focusUnitObj.transform.position;
            //if (Mathf.Abs(distance.y) <= Mathf.Abs(distance.x))
            //{
            //    if (playerUnitObj.transform.position.x < focusUnitObj.transform.position.x)
            //        playerUnitObj.GetComponent<MoveController>().PlayAnim(Enums.MOVE.RIGHT);
            //    else
            //        playerUnitObj.GetComponent<MoveController>().PlayAnim(Enums.MOVE.LEFT);
            //}
            //else
            //{
            //    if (playerUnitObj.transform.position.y < focusUnitObj.transform.position.y)
            //        playerUnitObj.GetComponent<MoveController>().PlayAnim(Enums.MOVE.UP);
            //    else
            //        playerUnitObj.GetComponent<MoveController>().PlayAnim(Enums.MOVE.DOWN);
            //}

            // バトルの実行
            battleManager.StartEvent();
            isBattle = true;
        }
        else if (!battleManager.isBattle())
        {
            // バトル終了
            isBattle = false;

            // プレイヤーUnitが生存していれば経験値取得処理を行う
            if (playerUnitObj)
            {
                // 経験値処理が終わるまでフェーズを停止
                phase = Enums.PHASE.STOP;

                // Exp取得処理の開始
                expGaugeController.GaugeUpdate(3000, playerUnitObj.GetComponent <UnitInfo>(), () =>
                {
                    phase = Enums.PHASE.RESULT;
                });
            }
            else
            {
                phase = Enums.PHASE.RESULT;
            }
        }
    }
示例#15
0
    void EnemyBattleStandbyPhase()
    {
        // バトルパラメータのセット
        enemyUnitObj = focusUnitObj;
        textEnemyHP  = battleStandbyUI.GetComponent <BattleStandby>().textEnemyHP;
        textMyHP     = battleStandbyUI.GetComponent <BattleStandby>().textMyHP;

        // 敵ユニット(攻撃する側)
        enemyAttackPower = Main.GameManager.GetCommonCalc().GetAttackDamage(focusUnitObj.GetComponent <UnitInfo>(), playerUnitObj.GetComponent <UnitInfo>());
        enemyAccuracy    = Main.GameManager.GetCommonCalc().GetHitRate(focusUnitObj.GetComponent <UnitInfo>(), playerUnitObj.GetComponent <UnitInfo>());
        enemyDeathblow   = Main.GameManager.GetCommonCalc().GetDeathBlowRete(focusUnitObj.GetComponent <UnitInfo>(), playerUnitObj.GetComponent <UnitInfo>());
        enemyAttackCount = Main.GameManager.GetCommonCalc().GetAttackCount(focusUnitObj.GetComponent <UnitInfo>(), playerUnitObj.GetComponent <UnitInfo>());

        // TODO
        //enemyAttackCount = 1;

        // プレイヤーユニット
        if (Main.GameManager.GetCommonCalc().GetCellDistance(
                playerUnitObj.transform.position,
                focusUnitObj.transform.position) <= playerUnitObj.GetComponent <UnitInfo>().attackRange)
        {
            // 反撃可能
            myAttackPower = Main.GameManager.GetCommonCalc().GetAttackDamage(playerUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
            myAccuracy    = Main.GameManager.GetCommonCalc().GetHitRate(playerUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
            myDeathblow   = Main.GameManager.GetCommonCalc().GetDeathBlowRete(playerUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
            myAttackCount = Main.GameManager.GetCommonCalc().GetAttackCount(playerUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
        }
        else
        {
            // 反撃不可
            myAttackPower = -1;
            myAccuracy    = -1;
            myDeathblow   = -1;
            myAttackCount = 0;
        }
        // 敵の向きに合わせてUnitのアニメーション変更
        Vector3 distance = playerUnitObj.transform.position - focusUnitObj.transform.position;

        if (Mathf.Abs(distance.y) <= Mathf.Abs(distance.x))
        {
            if (playerUnitObj.transform.position.x > focusUnitObj.transform.position.x)
            {
                focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.RIGHT);
            }
            else
            {
                focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.LEFT);
            }
        }
        else
        {
            if (playerUnitObj.transform.position.y > focusUnitObj.transform.position.y)
            {
                focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.UP);
            }
            else
            {
                focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);
            }
        }
        phase = Enums.PHASE.BATTLE;
    }
示例#16
0
 /// <summary>
 /// 外部変更用
 /// </summary>
 /// <param name="player"></param>
 public void ChangePhase(Enums.PHASE newPhase)
 {
     phase = newPhase;
 }
示例#17
0
    void MyBattleStandbyPhase()
    {
        // 攻撃範囲の描画
        if (activeAreaManager.attackAreaList == null)
        {
            activeAreaManager.CreateAttackArea(focusUnitObj.transform.position, focusUnitObj.GetComponent <UnitInfo>().attackRange);
        }
        else
        {
            // カーソルを敵ユニットに合わせた時の処理
            if (Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos) &&
                Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos).aRMY == Enums.ARMY.ENEMY &&
                activeAreaManager.attackAreaList[-(int)cursorPos.y, (int)cursorPos.x].aREA == Enums.AREA.ATTACK)
            {
                // バトルパラメータのセット
                playerUnitObj = focusUnitObj;
                enemyUnitObj  = Main.GameManager.GetUnit().GetMapUnitObj(cursorPos);
                textMyHP      = battleStandbyUI.GetComponent <BattleStandby>().textMyHP;
                textEnemyHP   = battleStandbyUI.GetComponent <BattleStandby>().textEnemyHP;

                myAttackPower = Main.GameManager.GetCommonCalc().GetAttackDamage(focusUnitObj.GetComponent <UnitInfo>(), enemyUnitObj.GetComponent <UnitInfo>());
                myAccuracy    = Main.GameManager.GetCommonCalc().GetHitRate(focusUnitObj.GetComponent <UnitInfo>(), enemyUnitObj.GetComponent <UnitInfo>());
                myDeathblow   = Main.GameManager.GetCommonCalc().GetDeathBlowRete(focusUnitObj.GetComponent <UnitInfo>(), enemyUnitObj.GetComponent <UnitInfo>());
                myAttackCount = Main.GameManager.GetCommonCalc().GetAttackCount(focusUnitObj.GetComponent <UnitInfo>(), enemyUnitObj.GetComponent <UnitInfo>());

                enemyAttackPower = Main.GameManager.GetCommonCalc().GetAttackDamage(enemyUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
                enemyAccuracy    = Main.GameManager.GetCommonCalc().GetHitRate(enemyUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
                enemyDeathblow   = Main.GameManager.GetCommonCalc().GetDeathBlowRete(enemyUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());
                enemyAttackCount = Main.GameManager.GetCommonCalc().GetAttackCount(enemyUnitObj.GetComponent <UnitInfo>(), focusUnitObj.GetComponent <UnitInfo>());

                // 敵の向きに合わせてUnitのアニメーション変更
                if (Mathf.Abs(focusUnitObj.transform.position.x - enemyUnitObj.transform.position.x) <= 0f)
                {
                    if (focusUnitObj.transform.position.y < enemyUnitObj.transform.position.y)
                    {
                        focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.UP);
                    }
                    else
                    {
                        focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.DOWN);
                    }
                }
                else if (focusUnitObj.transform.position.x < enemyUnitObj.transform.position.x)
                {
                    focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.RIGHT);
                }
                else
                {
                    focusUnitObj.GetComponent <MoveController>().PlayAnim(Enums.MOVE.LEFT);
                }

                // UIの切り替え
                if (!battleStandbyUI.activeSelf)
                {
                    battleStandbyUI.SetActive(true);
                }
                battleStandbyUI.GetComponent <BattleStandby>().SetMyUnitData(
                    focusUnitObj.GetComponent <UnitInfo>(), myAttackPower, myAccuracy, myDeathblow);
                battleStandbyUI.GetComponent <BattleStandby>().SetEnemyUnitData(
                    enemyUnitObj.GetComponent <UnitInfo>(), enemyAttackPower, enemyAccuracy, enemyDeathblow);
            }
            else
            if (battleStandbyUI.activeSelf)
            {
                battleStandbyUI.SetActive(false); // UIの切り替え
            }
            // クリック処理
            if (Input.GetMouseButtonDown(0))
            {
                // アクティブエリア(攻撃可能マス)で攻撃対象を選択する
                if (activeAreaManager.attackAreaList[-(int)cursorPos.y, (int)cursorPos.x].aREA == Enums.AREA.ATTACK &&
                    Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos) &&
                    Main.GameManager.GetUnit().GetMapUnitInfo(cursorPos).aRMY == Enums.ARMY.ENEMY)
                {
                    // 移動完了
                    Main.GameManager.GetUnit().MoveMapUnitObj(oldFocusUnitPos, focusUnitObj.transform.position);
                    focusUnitObj.GetComponent <UnitInfo>().Moving(true); // 行動済み

                    // 戦闘開始
                    // ターンとUIの切り替え
                    //cursorObj.SetActive(false);
                    activeAreaManager.attackAreaObj.SetActive(false);
                    phase = Enums.PHASE.BATTLE;
                }
                else
                {
                    OnCancelBattleStandby();  // UIの切り替え
                }
            }
        }
    }