예제 #1
0
    void Update()
    {
        //ふじつぼに入っている状態でのみ飛ぶ
        if (playermanagerScript.IsAction)
        {
            if (Input.GetMouseButtonDown(0))
            {
                //タッチした場所のポジション
                clickPosDown = Input.mousePosition;
                //矢印表示
                arrow.SetActive(true);
                //引っ張った時のSE
                SePlay(0);
                transform.position = playermanagerScript.HujitsuboTransform.position;
            }

            if (Input.GetMouseButtonUp(0))
            {
                if (!cameraMove.IsStart())
                {
                    cameraMove.CameraMoveStart();
                }
                //離した場所のポジション
                clickPosUp = Input.mousePosition;
                //矢印非表示
                arrow.SetActive(false);


                if (clickPosDown == clickPosUp)
                {
                    transform.position = playermanagerScript.PlayerSpot.position;
                    flow.isFlow        = false;
                    //指を離した場所が同じ場所なら処理抜ける
                    return;
                }

                //飛ばす方向の計算
                playerVec = clickPosDown - clickPosUp;
                playerVec.Normalize();
                //ドラッグした距離の計算
                pullDistance = (clickPosDown - clickPosUp).magnitude;
                //飛ばす力の計算
                power = pullDistance * 3.0f;


                if (power >= maxPower)
                {
                    //速度制限
                    power = maxPower;
                }
                else if (power < minPower)
                {
                    transform.position = playermanagerScript.PlayerSpot.position;
                    flow.isFlow        = false;
                    //速度が低いと発射しない
                    return;
                }
                //飛ばす処理
                playermanagerScript.MyRigidbody.AddForce(playerVec * power);
                //ふじつぼに入っていない時に飛ばせないようにする
                playermanagerScript.IsAction = false;
                //飛ぶ時のSE
                SePlay(1);
                //飛んでいる時のアニメーション
                anim.SetBool("IsPlayer", true);

                //流れを再開
                flow.isFlow = true;
            }
        }

        meter.value = transform.position.x;
    }