@startuml enum PlaneAxis { XZ= 0, XY= 1, YZ= 2, } class VirtualPlane { + planeAxis : PlaneAxis + canvasGrid : GameObject + colliderObject : GameObject } class CanvasVirtualPlatformManager { - {static} instance : CanvasVirtualPlatformManager - virtualPlanes : VirtualPlane[] - colliderThickness : float = 0.1f - colliderLayer : string = "World" - currentPlane : PlaneAxis - platformVisible : bool = true - Awake() : void + {static} getInstance() : CanvasVirtualPlatformManager - Start() : void - GenerateColliders() : void - GetColliderRotation(axis:PlaneAxis) : Quaternion + RegenerateColliders() : void + SwitchToPlane(plane:PlaneAxis) : void + TogglePlatformVisibility(visible:bool) : void - UpdatePlaneVisibility() : void + ToggleGridVisibility(visible:bool) : void + GetCurrentPlane() : PlaneAxis + IsPlatformVisible() : bool + GetCurrentCollider() : GameObject + GetCurrentCanvas() : GameObject + SetCanvasSize(planeAxis:PlaneAxis, width:float, height:float) : void + SetCurrentCanvasSize(width:float, height:float) : void - RegenerateSingleCollider(plane:VirtualPlane) : void + GetCurrentCanvasSize() : Vector2 } MonoBehaviour <|-- CanvasVirtualPlatformManager @enduml