Exemple #1
0
 void WaitExe()
 {
     animeChange.SetAnime(AnimationChange.AnimeState.WAIT);
     if (inputManager.GetButtonPress(InputManager.KeyData.RIGHT) || inputManager.GetButtonPress(InputManager.KeyData.LEFT))
     {
         SideMoveState.ChangeState(m_WalkState, ref PlayerObj);
     }
 }
        public override void Stop()
        {
            if (useLog)
            {
                Debug.Log($"{Name} {nameof(Player)} {nameof(Stop)}");
            }

            base.Stop();

            stateManager.ChangeState(PlayerStates.PlayerStates.Idle);
        }
Exemple #3
0
    void OnGroundExe()
    {
        //地上にいる間の処理
        if (inputManager.GetButtonTrigger(InputManager.KeyData.A))
        {
            // ==============================================================================================
            if (operationFlag)
            {
                inputManager.SetRightVibration(10.0f);
            }
            // ==============================================================================================
            m_JumpVelocity = JumpMinSpeed;
            JumpState.ChangeState(m_JumpState, ref PlayerObj);
            particle.Play();                //一瞬パーティクルを出す
        }

        //もし地上じゃなくなっても空中処理になる
        if (!characterController.isGrounded)
        {
            JumpState.ChangeState(m_JumpState, ref PlayerObj);
        }
    }
Exemple #4
0
 public void IdleStart()
 {
     playerStateManager.ChangeState(idleState);
 }
Exemple #5
0
    /// <summary>
    /// 死亡してからの復帰処理を行う
    /// </summary>
    public void IvyExe()
    {
        //まずはキャラが一度画面を少し駆け上がってそのまま落ちていく
        // TODO 現在、死ぬといきなり上からツタが下りてくるようになってるけど将来的には一度ダメージ演出を入れたい
        //=====処理順=====
        //まずはツタが伸びるのを待つ必要があるのでツタが伸び終わったかどうかを判定するために
        //bool値をツタマネージャから取得して判定する
        //ツタが伸び切っていたらキャラクターが移動可能かどうかの判定をbool値でもらう.
        //キャラ移動可がついている間はキャラをマネージャの移動速度を参照して移動させ、
        //移動後にツタマネージャーに値を渡しておく。そのときにツタマネージャーは
        //これ以降も移動させるかどうかの判定を行っておく。
        //最後にジャンプ可能かどうかの判定を見て、可能状態であればジャンプボタンが押されたタイミングで
        //上方向へ力を与えて遷移をジャンプに移す。
        //この状態でジャンプ可能が解除されれば指定時間経過とみなし、力を与えずに
        //ジャンプ状態へ状態を戻す
        //復帰するときは生存フラグを返してキャラ側の処理は終了
        //===============

        //ツタが伸び切っているか?
        Vector3 IvyPos = ivyManager.GetIvyPos();

        IvyPos.x += 0.6f;                                          //キャラがツタをつかんでいるように見せる
        ChildObj.transform.rotation = Quaternion.Euler(0, 180, 0); //正面を向かせる処理
        IvyPos.z = transform.position.z;
        animeChange.SetAnime(AnimationChange.AnimeState.BURABURA);
        float offX = IvyPos.x - transform.position.x;

        if (ivyManager.GetIvyMaxLenFlag())
        {
            //ツタ中にキャラがなにかにぶつかった=================================================================================================================↓
            // ADD
            CollisionFlags flag = characterController.collisionFlags;
            if (flag != CollisionFlags.None)
            {
                AliveState.ChangeState(m_Survival, ref PlayerObj);
                m_JumpVelocity = 0.0f;
                JumpState.ChangeState(m_JumpState, ref PlayerObj);
                ivyManager.CharacterHasReturned(m_Type, true);
            }
            //==========================================================================================================================================↑
            //まだキャラ移動してる?
            if (ivyManager.GetReturnMoveFlag(m_Type))
            {
                //キャラクターが現在移動中
                characterController.Move(new Vector3(offX, -ivyManager.PlayerDownSpeed * Time.deltaTime, 0.0f));
                ivyManager.SetCharaVector3(m_Type, transform.position);                     //マネージャに座標を保持させる
            }
            else
            {
                characterController.Move(new Vector3(offX, 0.0f, 0.0f));
                //復帰できる状態になり、その状態でジャンプボタンが押された
                if (ivyManager.GetBuraBuraTimeExit(m_Type))                         //ここの判定をまだジャンプ出来る時間なら、にする
                {
                    if (inputManager.GetButtonTrigger(InputManager.KeyData.A))
                    {
                        if (operationFlag)
                        {
                            inputManager.SetRightVibration(10.0f);
                        }
                        AliveState.ChangeState(m_Survival, ref PlayerObj);
                        m_JumpVelocity = JumpMinSpeed;
                        JumpState.ChangeState(m_JumpState, ref PlayerObj);
                        ivyManager.CharacterHasReturned(m_Type, true);
                    }
                }
                else
                {
                    //ジャンプ可能時間が来てしまった
                    AliveState.ChangeState(m_Survival, ref PlayerObj);
                    m_JumpVelocity = 0.0f;
                    JumpState.ChangeState(m_JumpState, ref PlayerObj);
                    ivyManager.CharacterHasReturned(m_Type, true);
                }
            }
        }
        else
        {
            //まだツタが伸びきっていない場合は画面上部で待っていただく
            IvyPos.y           = ivyManager.CharaWaitHeight;
            transform.position = IvyPos;
        }

        //キャラクターが移動出来るか?


        //ジャンプ可能かどうか?
        //AliveState.ChangeState(m_Survival, ref PlayerObj);
    }