//### CharcterAction ###

    private void Run(float x = 0, float y = 0)
    {
        if (extraCtrl != null && extraCtrl.IsShooting())
        {
            return;
        }
        Vector3 moveDirection = new Vector3(x, 0, y).normalized;

        Move(moveDirection, status.runSpeed);
    }
    IEnumerator Attack()
    {
        int weaponNo = 0;

        for (;;)
        {
            if (atackIntervalTime == 0)
            {
                yield return(new WaitForSeconds(1.0f));
            }
            if (!GameController.Instance.isGameStart && !GameController.Instance.isPractice)
            {
                yield return(null);

                continue;
            }

            float interval = atackIntervalTime;
            if (targetTran == null)
            {
                yield return(null);

                continue;
            }

            //専用武器
            if (extraCtrl != null)
            {
                if (extraCtrl.IsShooting())
                {
                    yield return(null);

                    continue;
                }

                if (extraCtrl.IsEnabled())
                {
                    extraCtrl.Fire(targetTran);
                    continue;
                }
            }

            //通常武器
            weaponNo = Random.Range(0, weapons.Count);
            for (;;)
            {
                if (weapons[weaponNo].IsEnableFire())
                {
                    QuickTarget(targetTran);
                    yield return(new WaitForSeconds(0.15f));

                    quickTurnTime = 0;
                    weapons[weaponNo].Fire(targetTran);
                    break;
                }
                weaponNo = (weaponNo + 1) % weapons.Count;
                yield return(null);
            }
            yield return(new WaitForSeconds(interval));
        }
    }