public void CallOnUpdate(CollisionState collisionState) { if (m_ladderState == LadderState.JumpOff) { return; } if (m_ladderState != LadderState.None) { float climb = Input.GetAxis("Vertical"); Offset = (climb * 0.02f); } else { Offset = 0.0f; } if (m_ladderState == LadderState.AtTop && Offset > 0.0f) { Offset = 0.0f; } if (collisionState == CollisionState.OnFloor && Offset < 0.0f) { Offset = 0.0f; } if (Input.GetButton("Jump") && m_ladderState != LadderState.None) { m_ladderState = LadderState.JumpOff; Offset = 0.0f; } }
public void CallOnTriggerExit(Collider collider, ref PlayerState playerState) { if (m_ladderState == LadderState.JumpOff) return; if (Offset == 0.0f) { m_ladderState = LadderState.None; } }
public void CallOnTriggerExit(Collider collider, ref PlayerState playerState) { if (m_ladderState == LadderState.JumpOff) { return; } if (Offset == 0.0f) { m_ladderState = LadderState.None; } }
private void Awake() { rigidbody = GetComponent <Rigidbody2D>(); collider = GetComponent <Collider2D>(); animator = GetComponent <Animator>(); stateMachine = ScriptableObject.CreateInstance <StateMachine>(); groundState = new GroundState(this); ladderState = new LadderState(this); jumpState = new JumpState(this); dieState = new DieState(this); stateMachine.ChangeState(groundState); }
public void CallOnTriggerStay(Collider collider, ref PlayerState playerState) { if (m_ladderState == LadderState.JumpOff) return; string state = collider.gameObject.name; if (state == "LadderBASE") { m_ladderState = LadderState.AtBase; } else if (state == "LadderMID") { m_ladderState = LadderState.AtMiddle; } else if (state == "LadderTOP") { m_ladderState = LadderState.AtTop; } }
public void CallOnTriggerStay(Collider collider, ref PlayerState playerState) { if (m_ladderState == LadderState.JumpOff) { return; } string state = collider.gameObject.name; if (state == "LadderBASE") { m_ladderState = LadderState.AtBase; } else if (state == "LadderMID") { m_ladderState = LadderState.AtMiddle; } else if (state == "LadderTOP") { m_ladderState = LadderState.AtTop; } }
void OnTriggerExit(Collider collision) { if (this.name == "LadderBASE" && collision.name == "Player Spawn") { GameObject playerObject = collision.gameObject; if (playerObject == null) { return; } CEntityPlayer player = playerObject.GetComponent <CEntityPlayer>(); if (player == null) { return; } LadderState currentLadderState = player.Physics.GetLadder.state; if (currentLadderState == LadderState.AtBase) { player.Physics.GetLadder.state = LadderState.None; } } }
public bool CheckLadder(Collider collision) { if (this.name == "LadderBASE" && collision.name == "Player Spawn") { GameObject playerObject = collision.gameObject; if (playerObject == null) { return(false); } CEntityPlayer player = playerObject.GetComponent <CEntityPlayer>(); if (player == null) { return(false); } LadderState currentLadderState = player.Physics.GetLadder.state; if (currentLadderState == LadderState.None || currentLadderState == LadderState.OnMiddle || currentLadderState == LadderState.JumpingOff) { player.Physics.GetLadder.state = LadderState.AtBase; } return(true); } if (this.name == "LadderMID" && collision.name == "Player Spawn") { GameObject playerObject = collision.gameObject; if (playerObject == null) { return(false); } CEntityPlayer player = playerObject.GetComponent <CEntityPlayer>(); if (player == null) { return(false); } LadderState currentLadderState = player.Physics.GetLadder.state; if (player.GetPlayerState() == PlayerState.OnLadder || currentLadderState == LadderState.None) { player.Physics.GetLadder.state = LadderState.OnMiddle; player.SetPlayerState(PlayerState.OnLadder); player.Physics.CurrentCollisionState = CollisionState.None; } return(true); } if (this.name == "LadderTOP" && collision.name == "Player Spawn") { GameObject playerObject = collision.gameObject; if (playerObject == null) { return(false); } CEntityPlayer player = playerObject.GetComponent <CEntityPlayer>(); if (player == null) { return(false); } LadderState currentLadderState = player.Physics.GetLadder.state; if (currentLadderState == LadderState.OnMiddle) { player.Physics.GetLadder.state = LadderState.OnTop; player.SetPlayerState(PlayerState.OnLadder); player.Physics.CurrentCollisionState = CollisionState.None; } return(true); } return(false); }
public void OnFixedUpdate(ref PlayerState playerState, LadderState ladderState, FootMaterial footMaterial) { if (playerState == PlayerState.Walking) { m_currentAnimation = "Run"; if (!m_animation.IsPlaying("Run")) { m_animation.CrossFade("Run", 0.2f); PlayFootstepAudio(footMaterial); } } else if (playerState == PlayerState.Turning) { m_currentAnimation = "Turning Around"; if (!m_animation.IsPlaying("Running Turn") && !m_startedTurningRound) { m_startedTurningRound = true; m_animation.CrossFade("Running Turn"); } else if (!m_animation.IsPlaying("Running Turn")) { m_startedTurningRound = false; playerState = PlayerState.Walking; } } else if (playerState == PlayerState.Standing) { m_currentAnimation = "Idle"; m_animation["Idle Simple"].speed = 0.2f; if (!m_animation.IsPlaying("Idle Simple")) { m_animation.CrossFade("Idle Simple"); } } else if (playerState == PlayerState.Jumping) { m_currentAnimation = "Running"; if (!m_animation.IsPlaying("Running Jump (NEW)")) { m_animation.Play("Running Jump (NEW)"); } } else if (playerState == PlayerState.FallJumping) { m_currentAnimation = "Falling"; if (!m_animation.IsPlaying("Falling Loop")) { m_animation.CrossFade("Falling Loop"); } } else if (playerState == PlayerState.LedgeHang) { m_currentAnimation = "Ledge Hang"; if (!m_animation.IsPlaying("Wall Hang Idle")) { m_animation.CrossFade("Wall Hang Idle"); m_startedLedgeClimb = false; } } else if (playerState == PlayerState.LedgeClimb) { m_currentAnimation = "Ledge Climbing"; if (!m_animation.IsPlaying("Climb from Free Hang") && !m_startedLedgeClimb) { m_animation.CrossFade("Climb from Free Hang"); m_startedLedgeClimb = true; } else if (m_startedLedgeClimb == true && !m_animation.IsPlaying("Climb from Free Hang")) { playerState = PlayerState.LedgeClimbComplete; m_startedLedgeClimb = false; } } else if (playerState == PlayerState.FallingFromTower) { m_currentAnimation = "Falling"; if (!m_animation.IsPlaying("Falling Loop")) { m_animation.CrossFade("Falling Loop"); } } else if (playerState == PlayerState.UpALadder) { float upDown = Input.GetAxis("Vertical"); m_currentAnimation = "Ladder"; if ((upDown != 0.0f && ladderState != LadderState.AtTop) || (ladderState == LadderState.AtTop && upDown < 0)) { bool forceAnimationChange = upDown > 0.0f && m_animation["Ladder Up"].speed > 0.0f ? false : true; if (!m_animation.IsPlaying("Ladder Up") || forceAnimationChange) { m_animation["Ladder Up"].speed = upDown > 0.0f ? 2.0f : -2.0f; m_animation.Play("Ladder Up"); } if (m_animation.IsPlaying("Ladder Up")) { PlayFootstepAudio(FootMaterial.Metal); } } else { m_animation["Ladder Up"].speed = 0.0f; if (!m_animation.IsPlaying("Ladder Up")) { m_animation.Play("Ladder Up"); } } } }
public void OnFixedUpdate(ref PlayerState playerState, LadderState ladderState, FootMaterial footMaterial) { if (playerState == PlayerState.Walking) { m_currentAnimation = "Run"; if (!m_animation.IsPlaying("Run")) { m_animation.CrossFade("Run", 0.2f); PlayFootstepAudio(footMaterial); } } else if (playerState == PlayerState.Turning) { m_currentAnimation = "Turning Around"; if (!m_animation.IsPlaying("Running Turn") && !m_startedTurningRound) { m_startedTurningRound = true; m_animation.CrossFade("Running Turn"); } else if (!m_animation.IsPlaying("Running Turn")) { m_startedTurningRound = false; playerState = PlayerState.Walking; } } else if (playerState == PlayerState.Standing) { m_currentAnimation = "Idle"; m_animation["Idle Simple"].speed = 0.2f; if (!m_animation.IsPlaying("Idle Simple")) m_animation.CrossFade("Idle Simple"); } else if (playerState == PlayerState.Jumping) { m_currentAnimation = "Running"; if (!m_animation.IsPlaying("Running Jump (NEW)")) m_animation.Play("Running Jump (NEW)"); } else if (playerState == PlayerState.FallJumping) { m_currentAnimation = "Falling"; if (!m_animation.IsPlaying("Falling Loop")) m_animation.CrossFade("Falling Loop"); } else if (playerState == PlayerState.LedgeHang) { m_currentAnimation = "Ledge Hang"; if (!m_animation.IsPlaying("Wall Hang Idle")) { m_animation.CrossFade("Wall Hang Idle"); m_startedLedgeClimb = false; } } else if (playerState == PlayerState.LedgeClimb) { m_currentAnimation = "Ledge Climbing"; if (!m_animation.IsPlaying("Climb from Free Hang") && !m_startedLedgeClimb) { m_animation.CrossFade("Climb from Free Hang"); m_startedLedgeClimb = true; } else if (m_startedLedgeClimb == true && !m_animation.IsPlaying("Climb from Free Hang")) { playerState = PlayerState.LedgeClimbComplete; m_startedLedgeClimb = false; } } else if (playerState == PlayerState.FallingFromTower) { m_currentAnimation = "Falling"; if (!m_animation.IsPlaying("Falling Loop")) m_animation.CrossFade("Falling Loop"); } else if (playerState == PlayerState.UpALadder) { float upDown = Input.GetAxis("Vertical"); m_currentAnimation = "Ladder"; if ((upDown != 0.0f && ladderState != LadderState.AtTop) || (ladderState == LadderState.AtTop && upDown < 0)) { bool forceAnimationChange = upDown > 0.0f && m_animation["Ladder Up"].speed > 0.0f ? false : true; if (!m_animation.IsPlaying("Ladder Up") || forceAnimationChange) { m_animation["Ladder Up"].speed = upDown > 0.0f ? 2.0f : -2.0f; m_animation.Play("Ladder Up"); } if (m_animation.IsPlaying("Ladder Up")) { PlayFootstepAudio(FootMaterial.Metal); } } else { m_animation["Ladder Up"].speed = 0.0f; if (!m_animation.IsPlaying("Ladder Up")) m_animation.Play("Ladder Up"); } } }
public void CallOnUpdate(CollisionState collisionState) { if (m_ladderState == LadderState.JumpOff) return; if (m_ladderState != LadderState.None) { float climb = Input.GetAxis("Vertical"); Offset = (climb * 0.02f); } else { Offset = 0.0f; } if (m_ladderState == LadderState.AtTop && Offset > 0.0f) { Offset = 0.0f; } if (collisionState == CollisionState.OnFloor && Offset < 0.0f) { Offset = 0.0f; } if (Input.GetButton("Jump") && m_ladderState != LadderState.None) { m_ladderState = LadderState.JumpOff; Offset = 0.0f; } }