版本:Unity 6 (6000.0)
语言English
  • C#

ReserveModifiersAttribute 构造函数

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public ReserveModifiersAttribute(ShortcutManagement.ShortcutModifiers modifiers);

参数

modifiers 要保留的一个或多个修饰符。

描述

创建一个为单个快捷方式保留修饰符的属性。

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; } }