コード例 #1
0
 static public MidAirState GetInstance()
 {
     if (instance == null)
     {
         instance = new MidAirState();
     }
     return(instance);
 }
コード例 #2
0
    // Al dejar de interactuar se cambia el estado a MidAir (para que pueda saltar una vez y no caer sin control)
    // se desactiva la animacion de Climbing y se vuelve a poner el rigidbody como antes.
    public override void DeInteract(PlayerInteraction pi, PlayerMovement pm)
    {
        pm.rBody.isKinematic = false;
        pi.anim.SetBool("isClimbing", false);
        pm.SetColliderStatus(true);
        pm.SwapState(MidAirState.GetInstance());
        pi.objectToInteract = null;
        pi.SetWeaponActive(true);

        pi.interactingScript = null;
    }
コード例 #3
0
 public void StateDependentUpdate(PlayerMovement pm)
 {
     jumpStrength = pm.jumpStrength;
     if (wantsToJump)
     {
         //rBody.AddRelativeForce(Vector2.up * jumpStrength, ForceMode2D.Force);
         pm.rBody.velocity = Vector2.up * jumpStrength;
         wantsToJump       = false;
         pm.anim.SetBool("isJumping", true);
         pm.SwapState(MidAirState.GetInstance());
     }
     pm.CheckHorizontalMovement();
 }
コード例 #4
0
 void ExitNonInteracting(Collider2D other)
 {
     // Si sale de un collider de tag Water mientras no interactua cambiamos el estado a midAir para que
     // pueda saltar y salir del agua.
     if (IsTagged("Water", other))
     {
         movementScript.SwapState(MidAirState.GetInstance());
     }
     // Si no estamos interactuando y salimos de un collider Rope (soga), seteamos en null el objeto
     // interactuable del interaction script, para que no pueda interactuar si no esta sobre la soga.
     else if (IsTagged("Rope", other) || IsTagged("TeleportInteracter", other))
     {
         interactionScript.objectToInteract = null;
         feedbackScript.ResetImage();
     }
 }