private void ProcessSceneEvents() { if (sceneManipulator.Sync()) { Repaint(); } int controlId = GUIUtility.GetControlID(FocusType.Passive); if (Event.current.type == EventType.MouseDown && (Event.current.button == 0) && !Event.current.alt) { // If shift is held then always add, if control then always subtract, otherwise use intelligent pick mode PickMode mode = PickMode.Undecided; if (Event.current.shift) { mode = PickMode.Additive; } else if (Event.current.control) { mode = PickMode.Subtractive; } bool eventConsumed = sceneManipulator.DoMouseDown(mode); if (eventConsumed) { activeMouseButton = Event.current.button; GUIUtility.hotControl = controlId; Event.current.Use(); } } else if (Event.current.type == EventType.MouseDrag && Event.current.button == activeMouseButton && !Event.current.alt) { bool eventConsumed = sceneManipulator.DoMouseDrag(); if (eventConsumed) { GUIUtility.hotControl = controlId; Event.current.Use(); Repaint(); } } else if (Event.current.type == EventType.MouseUp && Event.current.button == activeMouseButton && !Event.current.alt) { bool eventConsumed = sceneManipulator.DoMouseUp(); if (eventConsumed) { activeMouseButton = -1; GUIUtility.hotControl = 0; Event.current.Use(); } } }
public void OnSceneGUI() { // Debug.Log ("Window.OnSceneGUI"); if (sceneManipulator.Sync()) { Repaint(); } int controlId = GUIUtility.GetControlID(FocusType.Passive); if (Event.current.type == EventType.MouseDown && (Event.current.button == 0)) { bool eventConsumed = sceneManipulator.DoMouseDown(); if (eventConsumed) { activeMouseButton = Event.current.button; GUIUtility.hotControl = controlId; Event.current.Use(); } } else if (Event.current.type == EventType.MouseDrag && Event.current.button == activeMouseButton) { bool eventConsumed = sceneManipulator.DoMouseDrag(); if (eventConsumed) { GUIUtility.hotControl = controlId; Event.current.Use(); Repaint(); } } else if (Event.current.type == EventType.MouseUp && Event.current.button == activeMouseButton) { bool eventConsumed = sceneManipulator.DoMouseUp(); if (eventConsumed) { activeMouseButton = -1; GUIUtility.hotControl = 0; Event.current.Use(); } } }