Version: 2023.2
言語: 日本語

ReserveModifiersAttributeConstructor

マニュアルに切り替える
public ReserveModifiersAttribute (ShortcutManagement.ShortcutModifiers modifiers);

パラメーター

modifiers One or more modifiers to reserve.

説明

Creates an attribute that reserves a modifier for a single shortcut.

using UnityEditor;
using UnityEditor.ShortcutManagement;
using UnityEngine;

public class CustomSceneViewNavigation : ScriptableSingleton<CustomSceneViewNavigation> { bool moveForward; bool moveBack; bool boost;

[ClutchShortcut("Custom Scene Navigation/Move Forward", KeyCode.KeypadMinus)] [ReserveModifiers(ShortcutModifiers.Shift)] static void MoveForward(ShortcutArguments args) { instance.moveForward = args.stage == ShortcutStage.Begin; }

[ClutchShortcut("Custom Scene Navigation/Move Back", KeyCode.KeypadPlus)] [ReserveModifiers(ShortcutModifiers.Shift)] static void MoveBack(ShortcutArguments args) { instance.moveBack = args.stage == ShortcutStage.Begin; }

private void OnEnable() { SceneView.duringSceneGui += DuringSceneGUI; }

private void OnDisable() { SceneView.duringSceneGui -= DuringSceneGUI; }

void DuringSceneGUI(SceneView view) { boost = Event.current.shift;

var speed = boost ? 5 : 1; var direction = Vector3.zero;

if (moveForward) direction += view.camera.transform.forward;

if (moveBack) direction += -view.camera.transform.forward;

view.pivot += direction.normalized * Time.smoothDeltaTime * speed; } }