/// <summary> /// ici jump, mais just après la frame qui fait buggé /// </summary> /// <returns></returns> private IEnumerator JumpNextFrame(Vector3 dir, bool applyThisForce = false, float force = 0, float boost = 1) { yield return(new WaitForEndOfFrame()); if (!playerJump.CoolDownJump.IsReady()) { yield break; } playerJump.PrepareAndJump(dir); externalForce.SetBigMass(); //set sa propre mass big ! playerController.PlayersManager.Jump(playerController.IdPlayer); playerJump.Jump(dir, applyThisForce, force, boost); }
/// <summary> /// ici effectue un jump extraordinaire ! /// </summary> public void ControlledAirJumpSetup(bool jump, Vector3 dir, bool fromGround = true, float ratioForceJump = 1) { previousControllerJumpDir = dir; if (jump) { Debug.Log("active le jump"); inAutoAirMove = isAutoAirMoveAndCoolDownNotFinish = true; savePivot = playerPenduleMove.GetPivotPoint(true); DebugExtension.DebugWireSphere(savePivot, Color.green, 1f, 1f); //Debug.Break(); playerJump.PrepareAndJump(dir); airMoveActifLong.StartCoolDown(); //playerMove.MoveOnWallWhenAirMove(dir); StartCoroutine(JumpNextFrame(dir, true, initialBoost, ratioForceJump)); //playerJump.Jump(dir, true, initialBoost, 1); currentJumpBoost = jumpBoost; currentForceOnRopeBoost = forceOnRopeBoost; } else { Debug.Log("desactive le jump"); inAutoAirMove = false; if (fromGround) { airMoveActifLong.Reset(); isAutoAirMoveAndCoolDownNotFinish = false; } } }