@startuml enum BuildAxis { X, Y, Z, } class VirtualPlatformManager { - {static} instance : VirtualPlatformManager - platformThickness : float = 0.1f - showGrid : bool = true - gridSpacing : float = 1f - gridExtent : int = 50 - lineWidth : float = 0.5f - gridColor : Color - gridMaterial : Material - currentAxis : BuildAxis - currentDistance : float = 0f - gridLines : List - currentPlatform : GameObject - gridVisual : GameObject - colliderObj : GameObject - platformCollider : BoxCollider - mainCamera : Camera - Awake() : void + {static} getInstance() : VirtualPlatformManager - Start() : void - LateUpdate() : void - UpdateGridPosition() : void - UpdateColliderPosition() : void - UpdateGridLines(center:Vector3, axis1:Vector3, axis2:Vector3) : void + SwitchToAxis(axis:BuildAxis) : void + MovePlatform(delta:float) : void + SetPlatformDistance(distance:float) : void - UpdatePlatformDistance() : void - RecreatePlatform() : void - CreatePlatform() : void - CreateGridVisual() : void - SetupPlatformTransform() : void - CreateLine(start:Vector3, end:Vector3) : LineRenderer - GetPlatformOrigin() : Vector3 - GetPlatformAxes(axis1:Vector3, axis2:Vector3) : void + ToggleGridVisibility(visible:bool) : void + GetCurrentAxis() : BuildAxis + GetCurrentDistance() : float + GetPlatformPosition() : Vector3 } MonoBehaviour <|-- VirtualPlatformManager @enduml