132 lines
4.5 KiB
C#
132 lines
4.5 KiB
C#
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<UVCToggleButton>();
|
|
Button_RotateGizmo = transform.Find(nameof(Button_RotateGizmo)).GetComponent<UVCToggleButton>();
|
|
Button_ScaleGizmo = transform.Find(nameof(Button_ScaleGizmo)).GetComponent<UVCToggleButton>();
|
|
Button_Run = transform.Find(nameof(Button_Run)).GetComponent<UVCToggleButton>();
|
|
|
|
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<RunManager>().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();
|
|
}
|
|
}
|
|
}
|