Skip to content

Commit 4c5615b

Browse files
Merge pull request #2791 from keveleigh/SolverHandlerMultiple
[Solver PR 3.5] SolverHandler bug fixes
2 parents f42d863 + bb9d816 commit 4c5615b

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Assets/MixedRealityToolkit-SDK/Features/Utilities/Solvers/SolverHandler.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ namespace Microsoft.MixedReality.Toolkit.SDK.Utilities.Solvers
1111
/// <summary>
1212
/// This class handles the solver components that are attached to this <see cref="GameObject"/>
1313
/// </summary>
14-
[DisallowMultipleComponent]
1514
public class SolverHandler : MonoBehaviour
1615
{
1716
[SerializeField]
@@ -29,8 +28,7 @@ public TrackedObjectType TrackedObjectToReference
2928
if (trackedObjectToReference != value)
3029
{
3130
trackedObjectToReference = value;
32-
TransformTarget = null;
33-
AttachToNewTrackedObject();
31+
RefreshTrackedObject();
3432
}
3533
}
3634
}
@@ -176,6 +174,15 @@ protected void OnDestroy()
176174

177175
#endregion MonoBehaviour Implementation
178176

177+
/// <summary>
178+
/// Clears the transform target and attaches to the current <see cref="TrackedObjectToReference"/>.
179+
/// </summary>
180+
public void RefreshTrackedObject()
181+
{
182+
transformTarget = null;
183+
AttachToNewTrackedObject();
184+
}
185+
179186
protected virtual void AttachToNewTrackedObject()
180187
{
181188
switch (TrackedObjectToReference)
@@ -200,7 +207,7 @@ private Transform MakeOffsetTransform(Transform parentTransform)
200207
transformWithOffset.transform.parent = parentTransform;
201208
}
202209

203-
transformWithOffset.transform.localPosition = AdditionalOffset;
210+
transformWithOffset.transform.localPosition = Vector3.Scale(AdditionalOffset, transformWithOffset.transform.localScale);
204211
transformWithOffset.transform.localRotation = Quaternion.Euler(AdditionalRotation);
205212
transformWithOffset.name = string.Format("{0} on {1} with offset {2}, {3}", gameObject.name, TrackedObjectToReference.ToString(), AdditionalOffset, AdditionalRotation);
206213
return transformWithOffset.transform;

0 commit comments

Comments
 (0)