// Update is called once per frame
        void Update()
        {
            // キャンセル以外の 何かボタンを押したらセレクト画面へ遷移
            foreach (var player in PlayerIndexes.All)
            {
                // プレイヤーのキー押下状態を確認。
                InputStateDto state = ApplicationDto.ReadInput(player);

                if (state.Lp.Pressing ||
                    state.Mp.Pressing ||
                    state.Hp.Pressing ||
                    state.Lk.Pressing ||
                    state.Mk.Pressing ||
                    state.Hk.Pressing ||
                    state.Pause.Pressing
                    )
                {
                    Debug.Log($"Push key. human={player} input {state.ToDisplay()}");
                    CommonScript.computerFlags[player] = false;

                    // * Configure scene.
                    //     * Click main menu [File] - [Build Settings...].
                    //     * Double click [Assets] - [Scenes] - [Title] in project view.
                    //     * Click [Add Open Scenes] button.
                    //     * Double click [Assets] - [Scenes] - [Select] in project view.
                    //     * Click [Add Open Scenes] button.
                    //     * Double click [Assets] - [Scenes] - [Fight] in project view.
                    //     * Click [Add Open Scenes] button.
                    //     * Double click [Assets] - [Scenes] - [Result] in project view.
                    //     * Click [Add Open Scenes] button.
                    //     * Right click `Scenes/SampleScene` from `Build Settings/Scene In Build`. and Click [Remove Selection].
                    SceneManager.LoadScene(CommonScript.Scene_to_name[(int)SceneIndex.Select]);
                }
            }
        }
Exemplo n.º 2
0
        public static void UpdateState(PlayerIndex player, InputStateDto state)
        {
            //左キー: -1、右キー: 1
            state.LeverX = Input.GetAxisRaw(state.HorizontalName);
            // 下キー: -1、上キー: 1 (Input設定でVerticalの入力にはInvertをチェックしておく)
            state.LeverY = Input.GetAxisRaw(InputNames.Dictionary[new InputIndex(player, ButtonIndex.Vertical)]);
            state.Lp.set(Input.GetButton(state.LpName), Input.GetButtonDown(state.LpName), Input.GetButtonUp(state.LpName));
            state.Mp.set(Input.GetButton(state.MpName), Input.GetButtonDown(state.MpName), Input.GetButtonUp(state.MpName));
            state.Hp.set(Input.GetButton(state.HpName), Input.GetButtonDown(state.HpName), Input.GetButtonUp(state.HpName));
            state.Lk.set(Input.GetButton(state.LkName), Input.GetButtonDown(state.LkName), Input.GetButtonUp(state.LkName));
            state.Mk.set(Input.GetButton(state.MkName), Input.GetButtonDown(state.MkName), Input.GetButtonUp(state.MkName));
            state.Hk.set(Input.GetButton(state.HkName), Input.GetButtonDown(state.HkName), Input.GetButtonUp(state.HkName));
            state.Pause.set(Input.GetButton(state.PauseName), Input.GetButtonDown(state.PauseName), Input.GetButtonUp(state.PauseName));

            // プレイヤー1のみキャンセル可能
            if (player == PlayerIndex.Player1)
            {
                state.CancelMenu.set(Input.GetButton(state.CancelMenuName), Input.GetButtonDown(state.CancelMenuName), Input.GetButtonUp(state.CancelMenuName));
            }

            // プレイヤー1だけテストで表示します。
            if (PlayerIndex.Player1 == player)
            {
                Debug.Log($"player1 input {state.ToDisplay()}");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// キーの押下状態を読み取ります。
        /// </summary>
        /// <param name="player"></param>
        /// <returns></returns>
        public static InputStateDto ReadInput(PlayerIndex player)
        {
            // DTOを使い回します。
            InputStateDto state = PlayerInputStateDTOs[player];

            PlayerInputDao.UpdateState(player, state);

            return(state);
        }
        // Update is called once per frame
        void Update()
        {
            // キャンセル以外の 何かボタンを押したらセレクト画面へ遷移
            foreach (var player in PlayerIndexes.All)
            {
                // プレイヤーのキー押下状態を確認。
                InputStateDto state = ApplicationDto.ReadInput(player);

                // キャンセル以外の 何かボタンを押したらセレクト画面へ遷移
                if (state.Lp.Pressing ||
                    state.Mp.Pressing ||
                    state.Hp.Pressing ||
                    state.Lk.Pressing ||
                    state.Mk.Pressing ||
                    state.Hk.Pressing ||
                    state.Pause.Pressing)
                {
                    SceneManager.LoadScene(CommonScript.Scene_to_name[(int)SceneIndex.Select]);
                }
            }
        }
        // Update is called once per frame
        void Update()
        {
            var player = PlayerIndexes.FromArrayIndex(this.playerIndex);

            // 現在のアニメーター・ステートに紐づいたデータ
            AcStateRecordable astateRecord = AControl.Instance.GetCurrentAcStateRecord(animator);

            #region 入力受付と途中参加
            InputStateDto input = ApplicationDto.ReadInput(player);

            // 人間の途中参加受付
            if (
                CommonScript.computerFlags[player] && // コンピュータープレイヤーの場合
                (
                    // レバーはコンピューターもいじっているので、区別できない。
                    // 0 != leverX ||
                    // 0 != leverY ||
                    0 != input.LeverX ||
                    0 != input.LeverY ||
                    input.Lp.Pressing ||
                    input.Mp.Pressing ||
                    input.Hp.Pressing ||
                    input.Lk.Pressing ||
                    input.Mk.Pressing ||
                    input.Hk.Pressing ||
                    input.Pause.Pressing ||
                    input.CancelMenu.Pressing
                ))
            {
                Debug.Log("途中参加 " + player + " プレイヤー" + " leverX = " + input.LeverX + " leverY = " + input.LeverY);
                // コンピューター・プレイヤー側のゲームパッドで、何かボタンを押したら、人間の参入。
                CommonScript.computerFlags[player] = false;
                // FIXME: 硬直時間を入れたい。
                return;
            }

            if (CommonScript.computerFlags[player])
            {
                input.LeverX              = Random.Range(-1.0f, 1.0f);
                input.Lp.Pressing         = false;
                input.Mp.Pressing         = false;
                input.Hp.Pressing         = false;
                input.Lk.Pressing         = false;
                input.Mk.Pressing         = false;
                input.Hk.Pressing         = false;
                input.Pause.Pressing      = false;
                input.CancelMenu.Pressing = false;
            }
            else
            {
                input.LeverX = Input.GetAxisRaw(InputNames.Dictionary[new InputIndex(player, ButtonIndex.Horizontal)]);
            }
            #endregion

            if (AControl.Instance.StateHash_to_record[Animator.StringToHash(Select_Cursor_AbstractAControl.BASELAYER_STAY)].Name == astateRecord.Name)
            {
                //カーソル移動中でなければ。

                if (CommonScript.computerFlags[player])// コンピュータープレイヤーの場合
                {
                    if (CameraBehaviour.READY_TIME_LENGTH < mainCameraScript.ReadyingTime)
                    {
                        input.Lp.Pressing = (0.5 < Random.Range(0.0f, 1.0f)); // たまにパンチ・キーを押して決定する。
                    }
                }

                if (
                    input.Lp.Pressing ||
                    input.Mp.Pressing ||
                    input.Hp.Pressing ||
                    input.Lk.Pressing ||
                    input.Mk.Pressing ||
                    input.Hk.Pressing ||
                    input.Pause.Pressing
                    )
                {
                    // 何かボタンを押したら、キャラクター選択。
                    animator.SetTrigger(ThisSceneDto.TriggerSelect);
                }
                else if (input.LeverX != 0.0f)//左か右を入力したら
                {
                    //Debug.Log("slide lever x = " + leverX.ToString());
                    if (input.LeverX < 0.0f)
                    {
                        cursorColumn--;
                        if (cursorColumn < 0)
                        {
                            cursorColumn = 2;
                        }
                    }
                    else
                    {
                        cursorColumn++;
                        if (2 < cursorColumn)
                        {
                            cursorColumn = 0;
                        }
                    }

                    //Debug.Log("slide pos = " + cursorColumn[iPlayerIndex]);

                    animator.SetTrigger(ThisSceneDto.TriggerMove);

                    ChangeCharacter();

                    //入力方向へ移動
                    //rigidbody2Ds[iPlayerIndex].velocity = new Vector2(leverX * cursorSpeed, rigidbody2Ds[iPlayerIndex].velocity.y);
                    SlideIn();
                }
                else // ボタン押下も、レバー左右入力もしていなかったら
                {
                    //横移動の速度を0にしてピタッと止まるようにする
                    myRigidbody2D.velocity = new Vector2(0, myRigidbody2D.velocity.y);
                }
            }
            else if (AControl.Instance.StateHash_to_record[Animator.StringToHash(Select_Cursor_AbstractAControl.BASELAYER_MOVE)].Name == astateRecord.Name)
            {
            }
            else if (AControl.Instance.StateHash_to_record[Animator.StringToHash(Select_Cursor_AbstractAControl.BASELAYER_READY)].Name == astateRecord.Name)
            {
                // キャラクター選択済みのとき

                if (
                    !CommonScript.computerFlags[player] // 人間プレイヤーの場合
                    &&
                    (
                        input.Lk.Pressing ||
                        input.Mk.Pressing ||
                        input.Hk.Pressing ||
                        input.CancelMenu.Pressing
                    ))
                {
                    // キック・ボタンを押したら、キャンセル☆
                    animator.SetTrigger(ThisSceneDto.TriggerStay);
                }
            }
        }
Exemplo n.º 6
0
        //void OnCollisionEnter2D(Collider2D col)
        //{
        //    Debug.Log("物体だ☆! col.tag = " + col.tag);
        //}
        /// <summary>
        /// BoxCollider2D(等のPhysics2D), Rigidbody2D の2つをアタッチしているものと接触したとき。
        /// </summary>
        /// <param name="col"></param>
        void OnTriggerEnter2D(Collider2D col)
        {
            #region 当たり判定
            if (col.tag == playerScript.OpponentHitboxTag)// 相手の 攻撃当たり判定くん が重なった時
            {
                var player = PlayerIndexes.FromArrayIndex(this.playerIndex);

                // ブロックしているかどうか判定☆
                //CommonInput.PlayerInput input = CommonInput.player_to_input[playerIndex];
                InputStateDto input = ApplicationDto.ReadInput(player);
                if (FacingOpponentMoveFwBkSt.Back == playerScript.GetFacingOpponentMoveFwBkSt(input.LeverX))
                {
                    //if (PlayerIndex.Player1==player)
                    //{
                    //    Debug.Log("ブロック☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime);
                    //}
                    audioSources[1].PlayOneShot(audioSources[1].clip);// 効果音を鳴らすぜ☆
                    playerScript.Animator.SetTrigger(ThisSceneDto.TriggerBlock);
                }
                else
                {
                    //if (PlayerIndex.Player1 == player)
                    //{
                    //    Debug.Log("痛っ☆! col.tag = " + col.tag + " input.leverX = " + input.leverX + " Time.deltaTime = " + Time.deltaTime);
                    //}
                    playerScript.DamageHitCount++;                     // 攻撃を受けた回数。

                    audioSources[0].PlayOneShot(audioSources[0].clip); // 効果音を鳴らすぜ☆

                    // 爆発の粒子を作るぜ☆
                    TakoyakiParticleScript.Add(transform.position.x, transform.position.y);

                    // HPメーター
                    {
                        float damage = playerScript.MainCameraScript.PublicPlayerDTOs[playerScript.Opponent].AttackPower;

                        float value = damage * (player == PlayerIndex.Player1 ? -1 : 1);
                        playerScript.MainCameraScript.OffsetBar(value);

                        if (10 <= playerScript.DamageHitCount)
                        {
                            // ダウン・アニメーションの開始
                            playerScript.Pull_Down();
                        }
                        else if (100.0f <= damage)
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageH();
                        }
                        else if (50.0f <= damage)
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageM();
                        }
                        else
                        {
                            // ダメージ・アニメーションの開始
                            playerScript.Pull_DamageL();
                        }
                    }

                    // 手番
                    {
                        // 攻撃を受けた方の手番に変わるぜ☆(^▽^)
                        playerScript.MainCameraScript.SetTeban(playerScript.Opponent);
                    }
                }
            }
            else
            {
                //Debug.Log("相手の攻撃じゃないものに当たった☆! col.tag = " + col.tag);
            }
            #endregion
        }
Exemplo n.º 7
0
        void Update()
        {
            var player = PlayerIndexes.FromArrayIndex(this.playerIndex);

            //if (PlayerIndex.Player1 == player)
            //{
            //    //ebug.Log("Update Time.deltaTime = " + Time.deltaTime);
            //}

            // 現在のアニメーター・ステートに紐づいたデータ
            AcState astateRecord = (AcState)AControl.Instance.GetCurrentAcStateRecord(animator);

            #region 入力受付
            InputStateDto input = ApplicationDto.ReadInput(player);

            if (isComputer)
            {
                if (input.Lp.Down || input.Mp.Down || input.Hp.Down || input.Lk.Down || input.Mk.Down || input.Hk.Down || input.Pause.Down)
                {
                    // 人間プレイヤーの乱入☆ 次のフレームから☆
                    isComputer   = false;
                    input.LeverX = 0;
                    input.LeverY = 0;
                }
                else
                {
                    // コンピューター・プレイヤーの場合。
                    input.LeverX = Random.Range(-1.0f, 1.0f);
                    input.LeverY = Random.Range(-1.0f, 1.0f);
                    if (-0.980f < input.LeverX && input.LeverX < 0.980f)
                    {
                        // きょろきょろするので落ち着かせるぜ☆(^~^)
                        input.LeverX = 0.0f;
                    }

                    if (-0.995f < input.LeverY && input.LeverY < 0.995f)
                    {
                        // ジャンプばっかりするので落ち着かせるぜ☆(^~^)
                        input.LeverY = 0.0f;
                    }

                    if (input.Lp.Pressing)
                    {
                        // 押しっぱなしなら、いつか放す☆(^~^)
                        input.Lp.Up = (0.900f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        // 押してないなら、いつか押す☆(^~^)
                        input.Lp.Up   = false;
                        input.Lp.Down = (0.900f < Random.Range(0.0f, 1.0f));
                    }

                    if (input.Mp.Pressing)
                    {
                        input.Mp.Up = (0.990f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        input.Mp.Up   = false;
                        input.Mp.Down = (0.990f < Random.Range(0.0f, 1.0f));
                    }

                    if (input.Hp.Pressing)
                    {
                        input.Hp.Up = (0.995f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        input.Hp.Up   = false;
                        input.Hp.Down = (0.995f < Random.Range(0.0f, 1.0f));
                    }

                    if (input.Lk.Pressing)
                    {
                        input.Lk.Up = (0.900f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        input.Lk.Up   = false;
                        input.Lk.Down = (0.900f < Random.Range(0.0f, 1.0f));
                    }

                    if (input.Mk.Pressing)
                    {
                        input.Mk.Up = (0.990f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        input.Mk.Up   = false;
                        input.Mk.Down = (0.990f < Random.Range(0.0f, 1.0f));
                    }

                    if (input.Hk.Pressing)
                    {
                        input.Hk.Up = (0.995f < Random.Range(0.0f, 1.0f));
                    }
                    else
                    {
                        input.Hk.Up   = false;
                        input.Hk.Down = (0.995f < Random.Range(0.0f, 1.0f));
                    }
                    //buttonUpPA = (0.999f < Random.Range(0.0f, 1.0f));
                    //buttonDownPA = (0.999f < Random.Range(0.0f, 1.0f));
                }
            }
            #endregion

            FacingOpponentMoveFwBkSt facingOpponentMoveFwBkSt = GetFacingOpponentMoveFwBkSt(input.LeverX);

            if (astateRecord.Tags.Contains((int)Animator.StringToHash(AControl.TAG_BLOCK)))
            {
                // ブロック中
                if (FacingOpponentMoveFwBkSt.Back != facingOpponentMoveFwBkSt)
                {
                    // バックを解除している場合。
                    animator.SetTrigger(ThisSceneDto.TriggerDeblock);
                }
            }

            #region ジャンプ
            {
                // キャラクターの下半身に、接地判定用の垂直線を引く
                // transform.up が -1 のとき、方眼紙の1マス分ぐらい下に相当?
                isGrounded = Physics2D.Linecast(
                    transform.position + transform.up * 0,    // スプライトの中央
                    transform.position - transform.up * 1.1f, // 足元を少しはみ出すぐらい
                    groundLayer                               // Linecastが判定するレイヤー // LayerMask.GetMask("Water")//
                    );
                //if (PlayerIndex.Player1 == player)
                //{
                //    //ebug.Log("B playerIndex = " + playerIndex + " isGrounded = " + isGrounded + " transform.position.y = " + transform.position.y + " Rigidbody2D.velocity.y = " + Rigidbody2D.velocity.y);
                //}

                //Animatorへパラメーターを送る
                animator.SetFloat(ThisSceneDto.FloatVelY, Rigidbody2D.velocity.y); // y方向へかかる速度単位,上へいくとプラス、下へいくとマイナス
                //ebug.Log("Jumping velY="+animator.GetFloat(SceneCommon.FLOAT_VEL_Y));
                animator.SetBool(ThisSceneDto.BoolIsGrounded, isGrounded);
            }
            #endregion

            #region 弾を撃つ
            // 弾を撃つぜ☆
            if (
                (3 == animator.GetInteger(ThisSceneDto.IntegerLeverXNeutral) % (30)) // レバーを放して、タイミングよく攻撃ボタンを押したとき
                &&
                (
                    input.Lp.Down ||
                    input.Mp.Down ||
                    input.Hp.Down ||
                    input.Lk.Down ||
                    input.Mk.Down ||
                    input.Hk.Down
                )
                )
            {
                float startY;

                if (0 < input.LeverY)// 上段だぜ☆
                {
                    startY = 1.2f;
                }
                else if (0 == input.LeverY)// 中段だぜ☆
                {
                    startY = 0.6f;
                }
                else // 下段だぜ☆
                {
                    startY = 0.0f;
                }

                // 弾の作成☆
                GameObject     newBullet = Instantiate(bullet, transform.position + new Vector3(0f, startY, 0f), transform.rotation);
                SpriteRenderer newBulletSpriteRenderer = newBullet.GetComponent <SpriteRenderer>();

                // 弾の画像を差し替えたいぜ☆(^~^)
                {
                    int      r       = Random.Range(0, 14);
                    Sprite[] sprites = Resources.LoadAll <Sprite>("Sprites/Bullet0");
                    Sprite   sprite2;
                    switch (r)
                    {
                    case 0: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_0")); break;   //歩

                    case 1: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_1")); break;   //香

                    case 2: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_2")); break;   //桂

                    case 3: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_3")); break;   //銀

                    case 4: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_4")); break;   //金

                    case 5: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_5")); break;   //角

                    case 6: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_6")); break;   //飛

                    case 7: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_7")); break;   //玉

                    case 8: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_8")); break;   //と

                    case 9: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_9")); break;   //杏

                    case 10: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_10")); break; //圭

                    case 11: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_11")); break; //全

                    case 12: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_12")); break; //馬

                    default: sprite2 = System.Array.Find <Sprite>(sprites, (sprite) => sprite.name.Equals("Bullet0_13")); break; //竜
                    }
                    newBulletSpriteRenderer.sprite = sprite2;
                }
            }
            #endregion

            #region レバーの押下時間の更新
            // レバー・ニュートラル時間と、レバー・プレッシング時間は、8フレームほど重複する部分がある。
            if (input.LeverX != 0)//左か右を入力したら
            {
                animator.SetInteger(ThisSceneDto.IntegerLeverXPressing, animator.GetInteger(ThisSceneDto.IntegerLeverXPressing) + 1);
                animator.SetInteger(ThisSceneDto.IntegerLeverXNeutral, 0);
                animator.SetInteger(ThisSceneDto.IntegerLeverXIdol, 0);
            }
            else //左も右も入力していなかったら
            {
                // 感覚的に、左から右に隙間なく切り替えたと思っていても、
                // 入力装置的には、左から右(その逆も)に切り替える瞬間、どちらも押していない瞬間が発生する。
                if (8 < animator.GetInteger(ThisSceneDto.IntegerLeverXIdol))// レバーを放した 数フレーム目から、レバーが離れた判定をすることにする。
                {
                    animator.SetInteger(ThisSceneDto.IntegerLeverXPressing, 0);
                    animator.SetInteger(ThisSceneDto.IntegerLeverXNeutral, animator.GetInteger(ThisSceneDto.IntegerLeverXNeutral) + 1);
                }
                else
                {
                    animator.SetInteger(ThisSceneDto.IntegerLeverXIdol, animator.GetInteger(ThisSceneDto.IntegerLeverXIdol) + 1);
                }
            }

            if (0 != input.LeverY)// 上か下キーを入力していたら
            {
                animator.SetInteger(ThisSceneDto.IntegerLeverYPressing, animator.GetInteger(ThisSceneDto.IntegerLeverYPressing) + 1);
                animator.SetInteger(ThisSceneDto.IntegerLeverYNeutral, 0);
                animator.SetInteger(ThisSceneDto.IntegerLeverYIdol, 0);
            }
            else // 下も上も入力していなかったら
            {
                // 感覚的に、左から右に隙間なく切り替えたと思っていても、
                // 入力装置的には、下から上(その逆も)に切り替える瞬間、どちらも押していない瞬間が発生する。
                if (8 < animator.GetInteger(ThisSceneDto.IntegerLeverYIdol))// レバーを放した 数フレーム目から、レバーが離れた判定をすることにする。
                {
                    animator.SetInteger(ThisSceneDto.IntegerLeverYPressing, 0);
                    animator.SetInteger(ThisSceneDto.IntegerLeverYNeutral, animator.GetInteger(ThisSceneDto.IntegerLeverYNeutral) + 1);
                }
                else
                {
                    animator.SetInteger(ThisSceneDto.IntegerLeverYIdol, animator.GetInteger(ThisSceneDto.IntegerLeverYIdol) + 1);
                }
            }
            #endregion

            #region レバー操作によるアクション
            //if (!anim.GetBool(CommonScript.BOOL_JMOVE0))//ジャンプ時の屈伸中ではないなら
            //{
            if (input.LeverX != 0)//左か右を入力したら
            {
                if (!astateRecord.Tags.Contains(Animator.StringToHash(AControl.TAG_BUSYX)))
                {
                    //入力方向へ移動
                    Rigidbody2D.velocity = new Vector2(Mathf.Sign(input.LeverX) * speedX, Rigidbody2D.velocity.y);
                }

                DoFacingOpponent(GetFacingOfOpponentLR());
                //ebug.Log("さあ、どっちだ☆ input.leverX = " + input.leverX + " facingOpponentMoveFwBkSt = " + facingOpponentMoveFwBkSt + " Time.deltaTime = " + Time.deltaTime);

                if (FacingOpponentMoveFwBkSt.Forward == facingOpponentMoveFwBkSt)// 相手に向かってレバーを倒したとき
                {
                    //if (PlayerIndex.Player1 == player)
                    //{
                    //    //ebug.Log("相手に向かっていくぜ☆ input.leverX = " + input.leverX);
                    //}

                    Pull_Forward();
                    //if (isGrounded)// 接地していれば
                    //{
                    //}
                    //if ((int)ActioningIndex.Dash != anim.GetInteger(CommonScript.INTEGER_ACTIONING))
                    //{
                    //    // ダッシュ・アニメーションの開始
                    //    //if (PlayerIndex.Player1 == player)
                    //    //{
                    //    //    //ebug.Log("Rigidbody2D.velocity.x = " + Rigidbody2D.velocity.x + " ダッシュ!");
                    //    //}
                    //}
                    //else
                    //{
                    //    // 既にダッシュ中なら何もしない
                    //}
                }
                else if (FacingOpponentMoveFwBkSt.Back == facingOpponentMoveFwBkSt)// 相手と反対の方向にレバーを倒したとき(バックステップ)
                {
                    //if (PlayerIndex.Player1 == player)
                    //{
                    //    //ebug.Log("相手の反対側に向かっていくぜ☆ input.leverX = " + input.leverX);
                    //}

                    Pull_Back();
                }
                else // レバーを倒していない時(ここにはこない?)
                {
                    //if (PlayerIndex.Player1 == player)
                    //{
                    //    //ebug.Log("止まっているぜ☆ input.leverX = " + input.leverX);
                    //}
                }
            }
            else// 左も右も入力していなかったら
            {
                if (isGrounded)// 接地していれば
                {
                    // 横移動の速度を0にしてピタッと止まるようにする
                    Rigidbody2D.velocity = new Vector2(0, Rigidbody2D.velocity.y);
                }


                // 感覚的に、左から右に隙間なく切り替えたと思っていても、
                // 入力装置的には、左から右(その逆も)に切り替える瞬間、どちらも押していない瞬間が発生する。
                if (8 < animator.GetInteger(ThisSceneDto.IntegerLeverXNeutral))// レバーを放した 数フレーム目から、レバーが離れた判定をすることにする。
                {
                    //if (PlayerIndex.Player1 == player)
                    //{
                    //    //ebug.Log("Rigidbody2D.velocity.x = " + Rigidbody2D.velocity.x + " ストップ!");
                    //}

                    if (isGrounded)// 接地していれば
                    {
                        animator.SetInteger(ThisSceneDto.IntegerActioning, (int)TilesetfileType.Stand);
                    }
                }
            }

            //ebug.Log("leverY = "+ leverY + " player_to_rigidbody2D[" + iPlayer  + "].velocity = " + player_to_rigidbody2D[iPlayer].velocity);

            if (0 != input.LeverY)// 上か下キーを入力していたら
            {
                if (!astateRecord.Tags.Contains(Animator.StringToHash(AControl.TAG_BUSYY)))
                {
                    if (0 < input.LeverY) // 上キーを入力したら
                    {
                        if (isGrounded)   // 接地していれば
                        {
                            // ジャンプするぜ☆
                            Pull_Jump();
                        }
                    }
                    else if (input.LeverY < 0) // 下キーを入力したら
                    {
                        if (isGrounded)        // 接地していれば
                        {
                            // 屈むぜ☆
                            Pull_Crouch();
                        }
                    }
                }
            }
            else // 下も上も入力していなかったら
            {
            }
            //}
            #endregion

            #region 行動
            //if (buttonDownHP && buttonDownHK)
            //{
            //    //ebug.Log("投了☆!");
            //    Resign();
            //}
            //else
            if (input.Lp.Down)
            {
                //ebug.Log("button BUTTON_03_P1_LP");
                Pull_LightPunch();
            }
            else if (input.Mp.Down)
            {
                //ebug.Log("button BUTTON_04_P1_MP");
                Pull_MediumPunch();
            }
            else if (input.Hp.Down)
            {
                //ebug.Log("button BUTTON_05_P1_HP");
                Pull_HardPunch();
            }
            else if (input.Lk.Down)
            {
                //ebug.Log("button BUTTON_06_P1_LK");
                Pull_LightKick();
            }
            else if (input.Mk.Down)
            {
                //ebug.Log("button BUTTON_07_P1_MK");
                Pull_MediumKick();
            }
            else if (input.Hk.Down)
            {
                //ebug.Log("button BUTTON_08_P1_HK");
                Pull_HardKick();
            }
            else if (input.Pause.Down)
            {
                //ebug.Log("button BUTTON_09_P1_PA");
            }
            #endregion

            if (ThisSceneDto.ReadyTimeLength < mainCameraScript.ReadyingTime)
            {
                // 当たり判定くん
                Motor.Instance.Update(animator, AControl.Instance, player, transform, hitboxsSpriteRenderer, weakboxCollider2D);
            }
        }