using System.Collections; using System.Collections.Generic; using UnityEngine; using Lightbug.Utilities; namespace Lightbug.CharacterControllerPro.Demo { public class Ladder : MonoBehaviour { [Header("Debug")] [SerializeField] bool showGizmos = true; [Header("Exit points")] [SerializeField] Transform topReference = null; [SerializeField] Transform bottomReference = null; [Header("Properties")] [Min(0)] [SerializeField] int climbingAnimations = 1; [SerializeField] Vector3 bottomLocalPosition = Vector3.zero; [SerializeField] Direction facingDirection = Direction.Forward; public int ClimbingAnimations { get { return climbingAnimations; } } public Transform TopReference { get { return topReference; } } public Transform BottomReference { get { return bottomReference; } } public Vector3 FacingDirectionVector { get { Vector3 facingDirectionVector = transform.forward; switch (facingDirection) { case Direction.Left: facingDirectionVector = -transform.right; break; case Direction.Right: facingDirectionVector = transform.right; break; case Direction.Up: facingDirectionVector = transform.up; break; case Direction.Down: facingDirectionVector = -transform.up; break; case Direction.Forward: facingDirectionVector = transform.forward; break; case Direction.Back: facingDirectionVector = -transform.forward; break; } return facingDirectionVector; } } void Awake() { } void OnDrawGizmos() { if (!showGizmos) return; if (bottomReference != null) { Gizmos.color = new Color(0f, 0f, 1f, 0.2f); Gizmos.DrawCube(bottomReference.position, Vector3.one * 0.5f); } if (topReference != null) { Gizmos.color = new Color(1f, 0f, 0f, 0.2f); Gizmos.DrawCube(topReference.position, Vector3.one * 0.5f); } CustomUtilities.DrawArrowGizmo(transform.position, transform.position + FacingDirectionVector, Color.blue); Gizmos.color = Color.white; } } }