@startuml class CommandHandler { - {static} instance : CommandHandler - commandManager : CommandManager - environment : Environment + {static} getInstance() : CommandHandler - Awake() : void - Start() : void - Update() : void + createBlock(prefabId:string, position:Vector3, rotation:Quaternion) : void + moveBlock(blockId:string, prePosition:Vector3, newPosition:Vector3, preRotation:Quaternion, newRotation:Quaternion) : void + removeBlock(blockId:string) : void + removeGroup(blockIds:List) : void + rotateBlock(blockId:string, newRotation:Quaternion) : void + undoAction() : void + redoAction() : void + clearHistory() : void } MonoBehaviour <|-- CommandHandler @enduml