Skip to content

Commit 058bebf

Browse files
Merge pull request #328 from Unity-Technologies/bugfixes/schoen/spatial-select
Don't spatial-select tools until input is released
2 parents 8ba3fc7 + a04eb4d commit 058bebf

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

Menus/ToolsMenu/ToolsMenu.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public void ProcessInput(ActionMapInput input, ConsumeControlDelegate consumeCon
200200
m_ToolsMenuUI.HighlightSingleButtonWithoutMenu((int)(buttonCount * normalizedRepeatingPosition) + 1);
201201
}
202202
}
203-
else if (toolslMenuInput.show.wasJustReleased)
203+
else if (spatialScrollData != null && !toolslMenuInput.show.isHeld && !toolslMenuInput.select.isHeld)
204204
{
205205
consumeControl(toolslMenuInput.show);
206206
consumeControl(toolslMenuInput.select);

Scripts/Modules/MultipleRayInputModule/MultipleRayInputModule.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,24 +141,28 @@ public void ProcessInput(ActionMapInput input, ConsumeControlDelegate consumeCon
141141
eventData.rayOrigin = rayOrigin;
142142
eventData.pointerLength = this.GetPointerLength(eventData.rayOrigin);
143143

144+
var sourceAMI = source.actionMapInput;
145+
var select = sourceAMI.select;
146+
144147
if (source.isValid != null && !source.isValid(source))
145148
{
146149
var currentRaycast = eventData.pointerCurrentRaycast;
147150
currentRaycast.gameObject = null;
148151
eventData.pointerCurrentRaycast = currentRaycast;
149152
source.hoveredObject = null;
150153
HandlePointerExitAndEnter(eventData, null, true); // Send only exit events
154+
155+
if (select.wasJustReleased)
156+
OnSelectReleased(source);
151157
continue;
152158
}
153159

154160
HandlePointerExitAndEnter(eventData, hoveredObject); // Send enter and exit events
155161

156162
var hasObject = source.hasObject;
157163
var hasScrollHandler = false;
158-
var sourceAMI = source.actionMapInput;
159-
sourceAMI.active = hasObject && ShouldActivateInput(eventData, source.currentObject, out hasScrollHandler);
160164

161-
var select = sourceAMI.select;
165+
sourceAMI.active = hasObject && ShouldActivateInput(eventData, source.currentObject, out hasScrollHandler);
162166

163167
// Proceed only if pointer is interacting with something
164168
if (!sourceAMI.active)

0 commit comments

Comments
 (0)