//private void CheckForClimbingAreas()
    //{
    //    //if ((GetState().Equals(MovementState.Jumping) || GetState().Equals(MovementState.Falling) || GetState().Equals(MovementState.WallClimbing) || GetState().Equals(MovementState.LedgeClimbing)))
    //    //{
    //        Vector3 endpointR = ((transform.forward.normalized * m_climbCheckRayDist) + m_climbRaycheckR.position);
    //        Vector3 endpointL = ((transform.forward.normalized * m_climbCheckRayDist) + m_climbRaycheckL.position);
    //        Debug.DrawLine(m_climbRaycheckR.position, endpointR, Color.blue);
    //        Debug.DrawLine(m_climbRaycheckL.position, endpointL, Color.blue);

    //        // Shoot two rays forward from above head
    //        RaycastHit hitR;
    //        RaycastHit hitL;

    //        if (Physics.Linecast(m_climbRaycheckR.position, endpointR, out hitR, m_climbCheckLayers)
    //            &&
    //            Physics.Linecast(m_climbRaycheckL.position, endpointL, out hitL, m_climbCheckLayers))
    //        {
    //            // Did both hit ledge trigger?
    //            if ((hitL.collider.gameObject.tag.Equals("ClimbLedge") && hitR.collider.gameObject.tag.Equals("ClimbLedge")) && m_findLedges)
    //            {
    //                // Switch to
    //                if (m_controllerPlayer.GetState().Equals(ControllerPlayer.MovementState.WallClimbing))
    //                {
    //                    SwitchToLedgeClimb(hitR.collider.gameObject.GetComponent<LedgeEdge>().GetClosestTarget(transform.position));
    //                }
    //                // Activate
    //                else if (!m_controllerPlayer.GetState().Equals(ControllerPlayer.MovementState.LedgeClimbing))
    //                {
    //                    // Start climbing at climb target closest to a point between raycasts
    //                    ActivateLedgeClimbing(hitR.collider.gameObject.GetComponent<LedgeEdge>().GetClosestTarget(transform.position));
    //                }
    //            }
    //            // Did both hit wall trigger?
    //            else if ((hitL.collider.gameObject.tag.Equals("ClimbWall") && hitR.collider.gameObject.tag.Equals("ClimbWall")) && m_findWalls)
    //            {
    //                // Switch to
    //                if (m_controllerPlayer.GetState().Equals(ControllerPlayer.MovementState.LedgeClimbing))
    //                {
    //                    SwitchToWallClimb(hitL.collider.gameObject.transform);
    //                }
    //                // Activate
    //                else if (!m_controllerPlayer.GetState().Equals(ControllerPlayer.MovementState.WallClimbing))
    //                {
    //                    if (Vector3.Distance(hitL.point, m_climbRaycheckL.position) <= m_controllerWallClimbing.DistanceFromWall)
    //                        ActivateWallClimbing(hitL.collider.gameObject.transform);
    //                }
    //            }
    //        }
    //    //}
    //}

    // Go into wall climbing mode
    public void ActivateWallClimbing(Transform wall)
    {
        //transform.parent = wall;
        m_currentState = ClimbingState.WallClimbing;
        m_controllerWallClimbing.enabled = true;
        m_controllerWallClimbing.InitiateClimb(wall.rotation);
        m_controllerPlayer.ActivateClimbing();
    }