@startuml class RayInteractor { - {static} instance : RayInteractor + {static} getInstance() : RayInteractor - gizmoLayerMask : LayerMask - interactableLayerMask : LayerMask - worldLayerMask : LayerMask - inputProvider : BaseInputProvider - mainCamera : Camera - lastHit : RaycastHit - currentGizmo : GameObject + OnWorldClick : UnityEvent + OnSelectEvent : UnityEvent - Awake() : void - Start() : void - SetupInput() : void + GetHitInfo(hitInfo:RaycastHit) : bool + GetCurrentGizmo() : GameObject + GetHitPosition() : Vector3 } MonoBehaviour <|-- RayInteractor @enduml