Skip to content

Commit f75a094

Browse files
committed
Fixing inconsistency with max-component usage in handle collider construction
1 parent 54a52d9 commit f75a094

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/PerAxisHandles.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ private void UpdateColliderType()
9595
{
9696
// attach new collider
9797
var handleBounds = VisualUtils.GetMaxBounds(GetVisual(handle).gameObject);
98-
var invScale = handleBounds.size.x == 0.0f ? 0.0f : config.HandleSize / handleBounds.size.x;
98+
float maxDim = VisualUtils.GetMaxComponent(handleBounds.size);
99+
float invScale = maxDim == 0.0f ? 0.0f : config.HandleSize / maxDim;
99100
Vector3 colliderSizeScaled = handleBounds.size * invScale;
100101
Vector3 colliderCenterScaled = handleBounds.center * invScale;
101102
if (config.HandlePrefabColliderType == HandlePrefabCollider.Box)
@@ -109,7 +110,7 @@ private void UpdateColliderType()
109110
{
110111
SphereCollider sphere = handle.gameObject.AddComponent<SphereCollider>();
111112
sphere.center = colliderCenterScaled;
112-
sphere.radius = colliderSizeScaled.x * 0.5f;
113+
sphere.radius = VisualUtils.GetMaxComponent(colliderSizeScaled) * 0.5f;
113114
sphere.radius += VisualUtils.GetMaxComponent(config.ColliderPadding);
114115
}
115116
}
@@ -236,7 +237,8 @@ protected override void RecreateVisuals()
236237

237238
protected override void UpdateColliderBounds(Transform handle, Vector3 visualSize)
238239
{
239-
var invScale = visualSize.x == 0.0f ? 0.0f : config.HandleSize / visualSize.x;
240+
float maxDim = VisualUtils.GetMaxComponent(visualSize);
241+
float invScale = maxDim == 0.0f ? 0.0f : config.HandleSize / maxDim;
240242
GetVisual(handle).transform.localScale = new Vector3(invScale, invScale, invScale);
241243
Vector3 colliderSizeScaled = visualSize * invScale;
242244
if (config.HandlePrefabColliderType == HandlePrefabCollider.Box)
@@ -248,7 +250,7 @@ protected override void UpdateColliderBounds(Transform handle, Vector3 visualSiz
248250
else
249251
{
250252
SphereCollider collider = handle.gameObject.GetComponent<SphereCollider>();
251-
collider.radius = colliderSizeScaled.x * 0.5f;
253+
collider.radius = VisualUtils.GetMaxComponent(colliderSizeScaled) * 0.5f;
252254
collider.radius += VisualUtils.GetMaxComponent(config.ColliderPadding);
253255
}
254256
}

Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/Visuals/ProximityEffect/ProximityEffect.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,9 @@ private void ScaleObject(ProximityState state, Transform scaleVisual, float obje
276276
weight = lerp ? config.CloseGrowRate : 1.0f;
277277
break;
278278
}
279-
280-
float newLocalScale = (scaleVisual.localScale.x * (1.0f - weight)) + (objectSize * targetScale * weight);
279+
280+
float maxScaleAxis = VisualUtils.GetMaxComponent(scaleVisual.localScale);
281+
float newLocalScale = (maxScaleAxis * (1.0f - weight)) + (objectSize * targetScale * weight);
281282
scaleVisual.localScale = new Vector3(newLocalScale, newLocalScale, newLocalScale);
282283
}
283284

0 commit comments

Comments
 (0)