Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        //マウスをクリックしたかどうか
        if (mConScript.GetClickFlg() && mConScript.GetHitJougiObj() != null)
        {
            //クリックしたオブジェクトと自身のオブジェクトの名前が同じであれば(時機判定)
            if (mConScript.GetHitJougiObj().name == gameObject.name)
            {
                SEManager.Instance.Play(SEPath.HAGIKU);
                mConScript.SetClickFlg(false);
                //力加減取得
                force  = mConScript.GetPushCompetence();
                torque = Vector3.zero;

                var rmPos        = mConScript.GetPushCompetence();
                var misalignment = mConScript.GetReleasePosMisalignment();

                //定規オブジェクトのY座標をposYと比較し、ジャンプしているかを判定
                if (jougiObj.gameObject.transform.localPosition.y <= posY)
                {
                    isJump = false;
                }

                //ジャンプ中でなければ
                if (!isJump)
                {
                    //クリックした座標とのズレを判定。misalignmentよりも小さい値であれば
                    //その場でクリックした判定とし、力を上に加える

                    if (Mathf.Abs(rmPos.x) < misalignment && Mathf.Abs(rmPos.z) < misalignment)
                    {
                        //縦の力を計算
                        JougiJump();
                    }
                    else
                    {
                        //横の力を計算
                        JougiMoveSide();
                    }
                    //力を加える
                    rb.AddTorque(torque, ForceMode.Impulse);
                    rb.AddForce(force, ForceMode.Impulse);
                }
            }
        }
        JougiDestroy();
    }