@@ -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