Hi Guys, I am busy scripting game play elements for a 2.5D action platformer we are working on. I have successfully created various gameplay elements including sliding down pipes, shimey’ing, wall running etc. but for the life of me can’t get a ladder right.
Here is my code:
public class LadderTrigger : MonoBehaviour
{
private bool isClimbing = false;
private CharacterController2D controller;
// Auto setup the script and associated trigger.
private void Reset()
{
if (collider == null)
{
BoxCollider boxCollider = gameObject.AddComponent<BoxCollider>();
}
collider.isTrigger = true;
}
private void OnTriggerEnter(Collider collider)
{
controller = collider.GetComponent<CharacterController2D>();
if (Input.GetAxisRaw("Vertical") != 0)
{
controller.movement.verticalSpeed = 0f;
controller.movement.speed = 0f;
controller.movement.gravity = 0f;
controller.transform.position = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, 0f);
}
}
private void OnTriggerStay(Collider collider)
{
if (Input.GetAxisRaw("Vertical") == 0)
{
controller.movement.verticalSpeed = 5f;
}
else if (Input.GetAxisRaw("Vertical") != 0)
{
controller.movement.speed = 0f;
}
}
private void OnTriggerExit()
{
controller.movement.gravity = 60f;
}
}