public ButtonActions GetSlot(VirtualController c) { if (IsAxisGesture) { return(c.GetAxis(Axis).GetPole(AxisGesture)); } else { return(c.GetButton(Button)); } }
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; } }
// } 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(); }