Пример #1
0
    /// <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);
    }
Пример #2
0
    /// <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;
            }
        }
    }