コード例 #1
0
 public ButtonActions GetSlot(VirtualController c)
 {
     if (IsAxisGesture)
     {
         return(c.GetAxis(Axis).GetPole(AxisGesture));
     }
     else
     {
         return(c.GetButton(Button));
     }
 }
コード例 #2
0
    void Update()
    {
        // 左右移動入力
        //		walkStandbyVec = Input.GetAxis("Horizontal");
        walkStandbyVec = VirtualController.GetAxis(VirtualController.CtrlCode.Horizontal);

        // ジャンプ入力
        //		jumpStandbyFlg |= (Input.GetAxis("Jump") != 0.0f);
        //		jumpStandbyFlg |= (VirtualController.GetAxis(VirtualController.CtrlCode.Jump) != 0.0f);
        jumpStandbyFlg = (VirtualController.GetAxis(VirtualController.CtrlCode.Jump) != 0.0f);

        // ジャンプ滞空時間
        remainJumpTime = (!Land.IsLanding ? remainJumpTime + Time.deltaTime : 0.0f);

        // 持ち上げ/下げ入力
        if (VirtualController.GetAxis(VirtualController.CtrlCode.Lift) != 0.0f)
        {
            liftInputFlg = true;
        }
    }
コード例 #3
0
    //	}

    void ClimbJump()
    {
        if (!useAutoClimbJump)
        {
            return;
        }

        // 持ち上げ中や持ち上げ入力があれば処理しない
        //		if (Lift.IsLifting || (Input.GetAxis("Lift") != 0.0f)) return;
        if (Lift.IsLifting || (VirtualController.GetAxis(VirtualController.CtrlCode.Lift) != 0.0f))
        {
            return;
        }

        // ジャンプ可能でなければ処理しない
        if (!canJump)
        {
            return;
        }

        // 接地中でも水上安定中でもなく、水上安定中ブロックに乗ってもいなければ処理しない
        if (!Land.IsLanding && !WaterStt.IsWaterSurface && !Land.IsWaterFloatLanding)
        {
            return;
        }

        // 左右への移動入力がなければ処理しない
        if (walkStandbyVec == 0.0f)
        {
            return;
        }

        // 自動ジャンプ判定がなければ処理しない
        if ((ClimbJumpWeightLvCollider == null) || (ClimbJumpWeightLvCollider.Count <= (int)WeightMng.WeightLv) || (ClimbJumpWeightLvCollider[(int)WeightMng.WeightLv] == null) ||
            (ClimbJumpWeightLvInWaterCollider == null) || (ClimbJumpWeightLvInWaterCollider.Count <= (int)WeightMng.WeightLv) || (ClimbJumpWeightLvInWaterCollider[(int)WeightMng.WeightLv] == null))
        {
            return;
        }

        Transform climbJumpCol;

        if (!WaterStt.IsInWater)
        {
            climbJumpCol = ClimbJumpWeightLvCollider[(int)WeightMng.WeightLv];
        }
        else
        {
            climbJumpCol = ClimbJumpWeightLvInWaterCollider[(int)WeightMng.WeightLv];
        }

        // 自動ジャンプ判定内に対象オブジェクトがなければ処理しない
        if (Physics.OverlapBox(climbJumpCol.transform.position,
                               climbJumpCol.lossyScale * 0.5f,
                               climbJumpCol.rotation, climbJumpMask).Length <= 0)
        {
            return;
        }

        // 現在の向きと移動入力方向が異なれば処理しない
        if (Vector3.Dot((climbJumpCol.position - transform.position), (Vector3.right * walkStandbyVec)) <= 0.0f)
        {
            return;
        }

        // ジャンプアニメーション
        if (!Lift.IsLifting)
        {
            PlAnim.StartJump();
        }
        else
        {
            PlAnim.StartHoldJump();
        }

        // 前回までの上下方向の加速度を削除
        MoveMng.StopMoveVirtical(MoveManager.MoveType.prevMove);

        // 左右方向の移動量も一更新だけ制限
        MoveMng.OneTimeMaxSpd = jumpStartOneTimeLimitSpd;

        // 上方向へ加速
        if (!WaterStt.IsInWater)
        {
            MoveMng.AddMove(new Vector3(0.0f, ClimbJumpWeightLvHeight[(int)WeightMng.WeightLv], 0.0f));
        }
        // 水中
        else
        {
            MoveMng.AddMove(new Vector3(0.0f, ClimbJumpWeightLvHeightInWater[(int)WeightMng.WeightLv], 0.0f));
        }

        // 離地
        Land.IsLanding          = false;
        WaterStt.IsWaterSurface = false;
        WaterStt.BeginWaterStopIgnore();
    }