com.soviby.unity.ui.ugui-to.../Assets/Editor/Helper/PanelHelper.cs

76 lines
2.4 KiB
C#
Raw Normal View History

2024-10-23 17:30:59 +00:00
#if UNITY_EDITOR
2024-10-28 16:31:38 +00:00
using Sirenix.OdinInspector.Editor;
2024-12-17 03:07:00 +00:00
using System;
2024-10-23 17:30:59 +00:00
using UguiToolkit.Editor.Windows;
2024-10-08 15:19:05 +00:00
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
namespace UguiToolkit.Editor
{
public static class PanelHelper
{
2024-12-17 03:07:00 +00:00
public static event Action<Transform> jumpOfGameCameraByCurPos;
public static event Action<Transform> recoverDataSelectionObjCache;
2024-10-08 15:19:05 +00:00
[InitializeOnLoadMethod]
public static void AddListener()
{
PrefabStage.prefabStageOpened += OnPrefabStageOpened;
PrefabStage.prefabStageClosing += OnPrefabStageClosing;
2024-12-06 10:46:00 +00:00
2024-10-08 15:19:05 +00:00
}
private static void OnPrefabStageOpened(PrefabStage stage)
{
var setting = GlobalManager.Instance.setting;
2024-12-06 10:46:00 +00:00
if (stage.assetPath == null || !setting || string.IsNullOrEmpty(setting.prefabForUIDirPath) || !stage.assetPath.StartsWith(setting.prefabForUIDirPath)) return;
2024-10-08 15:19:05 +00:00
// 打开配置界面
2024-12-06 10:46:00 +00:00
PanelCacheWindow.ShowWindow(new PanelCacheWindow.PanelCacheWindowArgs
2024-10-28 16:31:38 +00:00
{
stage = stage,
});
2024-10-08 15:19:05 +00:00
}
private static void OnPrefabStageClosing(PrefabStage stage)
{
2024-10-28 16:31:38 +00:00
// 关闭界面
2024-10-08 15:19:05 +00:00
PanelCacheWindow.CloseWindow();
2024-10-28 16:31:38 +00:00
EditWindow.CloseWindow();
2024-10-08 15:19:05 +00:00
}
2024-12-10 10:14:38 +00:00
/// <summary>
/// 创建热键 SPACE
/// </summary>
/// <param name="menuCommand"></param>
[MenuItem("GameObject/拼接助手/应用上次变换 _SPACE", false, 5)]
public static void JumpOfGameCameraByCurPos(MenuCommand menuCommand)
{
if (StageManager.Instance)
{
2024-12-17 03:07:00 +00:00
if (Selection.activeGameObject)
jumpOfGameCameraByCurPos.Invoke(Selection.activeGameObject.transform);
Debug.Log("JumpOfGameCameraByCurPos");
}
}
/// <summary>
/// 创建热键 CTRL SPACE
/// </summary>
/// <param name="menuCommand"></param>
[MenuItem("GameObject/拼接助手/恢复子节点位置 %SPACE", false, 6)]
public static void RecoverDataSelectionObjCache(MenuCommand menuCommand)
{
if (StageManager.Instance)
{
if (Selection.activeGameObject)
recoverDataSelectionObjCache.Invoke(Selection.activeGameObject.transform);
Debug.Log("RecoverDataSelectionObjCache");
2024-12-10 10:14:38 +00:00
}
}
2024-10-08 15:19:05 +00:00
}
2024-10-23 17:30:59 +00:00
}
#endif