using Studio.Command; using Studio.Manage; using UnityEngine; using UnityEngine.UI; using XRLib.UI; namespace Studio.UI { public class Panel_Toolbox : PanelBase { public Button Button_Undo; public Button Button_Redo; public Button Button_SaveProject; public Button Button_CopyObject; public Button Button_DeleteObject; public UVCToggleButton Button_MoveGizmo; public UVCToggleButton Button_RotateGizmo; public UVCToggleButton Button_ScaleGizmo; public UVCToggleButton Button_Run; public override void AfterAwake() { Button_Undo.onClick.AddListener(OnClickUndo); Button_Redo.onClick.AddListener(OnClickRedo); Button_SaveProject.onClick.AddListener(OnClickSaveProject); Button_DeleteObject.onClick.AddListener(OnClickDeleteObject); Button_CopyObject.onClick.AddListener(OnClickCopyObject); Button_MoveGizmo= transform.Find(nameof(Button_MoveGizmo)).GetComponent(); Button_RotateGizmo = transform.Find(nameof(Button_RotateGizmo)).GetComponent(); Button_ScaleGizmo = transform.Find(nameof(Button_ScaleGizmo)).GetComponent(); Button_Run = transform.Find(nameof(Button_Run)).GetComponent(); Button_MoveGizmo.onClick.AddListener(OnClickMoveGizmo); Button_RotateGizmo.onClick.AddListener(OnClickRotateGizmo); Button_ScaleGizmo.onClick.AddListener(OnClickScaleGizmo); Button_Run.onClick.AddListener(OnClickRun); SetActionToggle(ObjectGizmo.Move, true); // Default to no gizmo active } void OffGizmoButtons() { Button_MoveGizmo.SetOn(false); Button_ScaleGizmo.SetOn(false); Button_RotateGizmo.SetOn(false); } public void SetActionToggle(UI.ObjectGizmo gizmo, bool isOn) { OffGizmoButtons(); switch (gizmo) { case UI.ObjectGizmo.Move: Button_MoveGizmo.SetOn(isOn); break; case UI.ObjectGizmo.Rotate: Button_RotateGizmo.SetOn(isOn); break; case UI.ObjectGizmo.Scale: Button_ScaleGizmo.SetOn(isOn); break; } } private void OnClickRun() { Debug.Log("On Click ToolBox Run"); ManagerHub.instance.Get().ChangeState(); } private void OnClickCopyObject() { Debug.Log("On Click ToolBox Copy Object"); var copyCommand = new CopyObjectCommand(); CommandInvoker.instance.Invoke(copyCommand); } private void OnClickDeleteObject() { Debug.Log("On Click ToolBox Delete Object"); var deleteCommand = new RemoveSelectObjectCommand(); CommandInvoker.instance.Invoke(deleteCommand); } private void OnClickScaleGizmo() { Debug.Log("On Click ToolBox Scale Gizmo"); //OffGizmoButtons(); Button_MoveGizmo.SetOn(false); Button_RotateGizmo.SetOn(false); var scaleCommand = new ActivateScaleGizmoCommand(); CommandInvoker.instance.Invoke(scaleCommand); } private void OnClickRotateGizmo() { Debug.Log("On Click ToolBox Rotate Gizmo"); Button_MoveGizmo.SetOn(false); Button_ScaleGizmo.SetOn(false); var rotateCommand = new ActivateRotateGizmoCommand(); CommandInvoker.instance.Invoke(rotateCommand); } private void OnClickMoveGizmo() { Debug.Log("On Click ToolBox Move Gizmo"); Button_RotateGizmo.SetOn(false); Button_ScaleGizmo.SetOn(false); var moveCommand = new ActivateMoveGizmoCommand(); CommandInvoker.instance.Invoke(moveCommand); } private void OnClickSaveProject() { Debug.Log("On Click ToolBox Save Project"); var saveCommand = new SaveProjectCommand(); CommandInvoker.instance.Invoke(saveCommand); } private void OnClickRedo() { Debug.Log("On Click ToolBox Redo"); CommandInvoker.instance.Redo(); } private void OnClickUndo() { Debug.Log("On Click ToolBox Undo"); CommandInvoker.instance.Undo(); } } }