using UnityEngine;
using System.Collections;
public class LadderClimb : MonoBehaviour {
private CharacterController controller;
private CharacterMotor motor;
public float speed;
private float mspeed;
void OnTriggerEnter (Collider hit)
{
if (hit.collider.tag == "ladder" & controller.isGrounded)
{
Vector3 move = new Vector3 (0, 0.5f, 0);
transform.position += move;
}
}
void OnTriggerExit (Collider hit)
{
if (hit.collider.tag == "ladder")
{
motor.movement.maxFallSpeed = 20;
motor.movement.maxBackwardsSpeed = mspeed;
}
}
void OnTriggerStay(Collider hit)
{
if (hit.collider.tag == "ladder")
{
Vector3 move = new Vector3 (0, speed*Time.deltaTime, 0);
motor.movement.maxFallSpeed = 0;
motor.movement.maxBackwardsSpeed = 0;
if (Input.GetKey(KeyCode.W))
{
transform.position += move;
}
RaycastHit col;
if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.down), 2f))
{
motor.movement.maxBackwardsSpeed = mspeed;
}
else if (Input.GetKey(KeyCode.S))
{
motor.movement.maxBackwardsSpeed = 0;
transform.position -= move;
}
}
}
// Use this for initialization
void Start () {
motor = GetComponent<CharacterMotor>();
controller = GetComponent<CharacterController>();
mspeed = motor.movement.maxBackwardsSpeed;
}
// Update is called once per frame
void Update () {
}
}