context | 添加至快捷方式上下文列表的自定义上下文。 |
将 IShortcutContext 注册为自定义上下文,用以筛选快捷方式。
using UnityEditor; using UnityEditor.ShortcutManagement; using UnityEngine; public class ShortcutContextSample : EditorWindow { public class CustomShortcutContext : IShortcutContext { public bool active { get { if (!(focusedWindow is ShortcutContextSample view)) return false; return view.toggleValue; } } } [Shortcut("Custom Shortcut Context/Sample Shortcut", typeof(CustomShortcutContext), KeyCode.Mouse1)] static void SampleShortcut(ShortcutArguments args) { Debug.Log("The sample shortcut was called."); } bool m_ToggleValue = false; public bool toggleValue => m_ToggleValue; CustomShortcutContext m_ShortcutContext = new CustomShortcutContext(); [MenuItem("Window/Custom Editor Window")] public static void ShowWindow() { ShortcutContextSample wnd = GetWindow<ShortcutContextSample>(); wnd.titleContent = new GUIContent("Custom Editor Window"); } void OnGUI() { var content = new GUIContent("Toggle", "Toggle to activate the shortcut context."); m_ToggleValue = EditorGUILayout.Toggle(content, m_ToggleValue); } private void OnEnable() { ShortcutManager.RegisterContext(m_ShortcutContext); } private void OnDisable() { ShortcutManager.UnregisterContext(m_ShortcutContext); } }