示例#1
0
    //=============================================================================
    //  更新
    //=============================================================================
    void Update()
    {
        //息キーが押されて尚且つチャージボタンは押されていない
        if (PlayerCon.GetBreathFlg() && !PlayerCon.GetBreathChargeFlg())
        {
            //MAX値にならない限り
            if (breathPower < breathMeter)
            {
                breathPower += PLAYER_BREATH_ONE_PERCENT;

                //breathMeter -= PLAYER_BREATH_ONE_PERCENT;
            }
            else
            {
                breathPower = breathMeter;
            }
        }
        else //離されている
        {
            //息キーを離した瞬間だったら
            if (PlayerCon.GetBreathUpFlg() && breathMeter >= 0.05f)
            {
                BM.startCutIn();

                //ここにメーター消費があった
                //メーター消費
                breathMeter = breathMeter - breathPower;
                //ティッシュ間との距離を取得
                dest = Vector3.Distance(head.transform.position, TissueObj.transform.position);

                //距離を見てパワー再調整-------------------------------------------

                //距離が息の届く距離であれば
                if (dest <= PLAYER_BREATH_DEST_MAX)
                {
                    HitbreathFlg = true;
                    //もともとの息
                    breath = breathPower;
                    //距離を換算したときの息
                    breath = breath - (breath * (dest * PLAYER_BREATH_DEST_ONE_PERCENT));
                    // Debug.Log("breath" + breath);

                    //ここからプロトタイプ
                    //TissueObj.GetComponent<CubeController>().BreathAddForce(TissueObj.transform.position - head.transform.position, breath);
                    TissueObj.GetComponent <TissueManager>().BreathAddForce(TissueObj.transform.position - head.transform.position, breath);
                }
            }

            //もしどちらもおされていたら
            if (PlayerCon.GetBreathChargeFlg() && PlayerCon.GetBreathFlg())
            {
                breathMeter = breathMeter - breathPower;

                //ティッシュ間との距離を取得
                dest = Vector3.Distance(head.transform.position, TissueObj.transform.position);

                //距離を見てパワー再調整-------------------------------------------

                //距離が息の届く距離であれば
                if (dest <= PLAYER_BREATH_DEST_MAX)
                {
                    HitbreathFlg = true;
                    //もともとの息
                    breath = breathPower;
                    //距離を換算したときの息
                    breath = breath - (breath * (dest * PLAYER_BREATH_DEST_ONE_PERCENT));
                    // Debug.Log("breath" + breath);

                    //ここからプロトタイプ
                    //TissueObj.GetComponent<CubeController>().BreathAddForce(TissueObj.transform.position - head.transform.position, breath);
                    TissueObj.GetComponent <TissueManager>().BreathAddForce(TissueObj.transform.position - head.transform.position, breath);
                }
            }

            else
            {
                HitbreathFlg = false;
            }

            breathPower = 0.0f;

            if (breathMeter < PLAYER_BREATH_MAX)
            {
                //switch (TissueObj.GetComponent<TissueManager>().area)
                //{
                //    case TissueManager.E_Area.Player1:
                //        if(PlayerCon.mode == PlayerController.E_MODE.PLAYER_2) breathMeter += breathRecoverySpeed;
                //        break;
                //    case TissueManager.E_Area.Player2:
                //        if (PlayerCon.mode == PlayerController.E_MODE.PLAYER_1) breathMeter += breathRecoverySpeed;
                //        break;
                //    case TissueManager.E_Area.Center:
                //        break;
                //    default:
                //        break;
                //}

                //Chargeボタンが押されている尚且つ息吐きボタンが押されていなかったら
                if (PlayerCon.GetBreathChargeFlg() && !PlayerCon.GetBreathFlg())
                {
                    //仮値
                    breathMeter += breathRecoverySpeed;
                }
            }
        }

        //もし値がきれいに割り切れてない場合
        if (breathPower > breathMeter)
        {
            //MAX値に整える
            breathPower = breathMeter;
        }

        //もし値がきれいに割り切れてない場合
        if (breathMeter > PLAYER_BREATH_MAX)
        {
            //MAX値に整える
            breathMeter = PLAYER_BREATH_MAX;
        }
        if (breathMeter < 0.0f)
        {
            //最低値に整える
            breathMeter = 0.0f;
        }

        //Debug.Log("breathMeter" + breathMeter);
        //Debug.Log("breathPower" + breathPower);
        //Debug.Log("HitbreathFlg" + HitbreathFlg);
    }