private static HandleKeyDown ( |
||
sceneView | ||
Результат | void |
private static void HandleKeyDown(SceneView sceneView)
{
if ((Event.current.keyCode == KeyCode.Escape) && (GUIUtility.hotControl == s_ViewToolID))
{
ResetDragState();
}
if (Tools.s_LockedViewTool == ViewTool.FPS)
{
Event current = Event.current;
Vector3 vector = s_Motion;
if (current.keyCode == kFPSForward.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.z = 1f;
current.Use();
}
else if (current.keyCode == kFPSBack.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.z = -1f;
current.Use();
}
else if (current.keyCode == kFPSLeft.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.x = -1f;
current.Use();
}
else if (current.keyCode == kFPSRight.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.x = 1f;
current.Use();
}
else if (current.keyCode == kFPSUp.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.y = 1f;
current.Use();
}
else if (current.keyCode == kFPSDown.keyCode)
{
sceneView.viewIsLockedToObject = false;
s_Motion.y = -1f;
current.Use();
}
if ((current.type != EventType.KeyDown) && (vector.sqrMagnitude == 0f))
{
s_FPSTiming.Begin();
}
}
}
public static void DoViewTool(Transform cameraTransform, SceneView view) { Event current = Event.current; int num = SceneViewMotion.s_ViewToolID; EventType typeForControl = current.GetTypeForControl(num); float d = 0f; if (view && Tools.s_LockedViewTool == ViewTool.FPS) { view.FixNegativeSize(); d = (view.pivot - cameraTransform.position).magnitude; } switch (typeForControl) { case EventType.MouseDown: SceneViewMotion.HandleMouseDown(view, num, current.button); break; case EventType.MouseUp: SceneViewMotion.HandleMouseUp(view, num, current.button, current.clickCount); break; case EventType.MouseDrag: SceneViewMotion.HandleMouseDrag(cameraTransform, view, num); break; case EventType.KeyDown: SceneViewMotion.HandleKeyDown(view); break; case EventType.KeyUp: SceneViewMotion.HandleKeyUp(); break; case EventType.ScrollWheel: SceneViewMotion.HandleScrollWheel(view, !current.alt); break; case EventType.Layout: { Vector3 movementDirection = SceneViewMotion.GetMovementDirection(); if (GUIUtility.hotControl == num && movementDirection.sqrMagnitude != 0f) { cameraTransform.position += cameraTransform.rotation * movementDirection; } break; } } if (view && Tools.s_LockedViewTool == ViewTool.FPS) { if (!view.orthographic) { view.rotation = cameraTransform.rotation; } view.pivot = cameraTransform.position + cameraTransform.forward * d; view.Repaint(); } }