@@ -134,7 +134,10 @@ private void Awake()
134134 DeltaTime = 0.0f ;
135135
136136 solvers . AddRange ( GetComponents < Solver > ( ) ) ;
137+ }
137138
139+ private void Start ( )
140+ {
138141 // TransformTarget overrides TrackedObjectToReference
139142 if ( ! transformTarget )
140143 {
@@ -166,10 +169,7 @@ private void LateUpdate()
166169
167170 protected void OnDestroy ( )
168171 {
169- if ( transformWithOffset != null )
170- {
171- Destroy ( transformWithOffset ) ;
172- }
172+ DetachFromCurrentTrackedObject ( ) ;
173173 }
174174
175175 #endregion MonoBehaviour Implementation
@@ -184,19 +184,19 @@ protected override void OnControllerFound()
184184
185185 protected override void OnControllerLost ( )
186186 {
187- transformTarget = null ;
188-
189- if ( transformWithOffset != null )
190- {
191- Destroy ( transformWithOffset ) ;
192- transformWithOffset = null ;
193- }
187+ DetachFromCurrentTrackedObject ( ) ;
194188 }
195189
196190 /// <summary>
197191 /// Clears the transform target and attaches to the current <see cref="TrackedObjectToReference"/>.
198192 /// </summary>
199193 public void RefreshTrackedObject ( )
194+ {
195+ DetachFromCurrentTrackedObject ( ) ;
196+ AttachToNewTrackedObject ( ) ;
197+ }
198+
199+ protected virtual void DetachFromCurrentTrackedObject ( )
200200 {
201201 transformTarget = null ;
202202
@@ -205,8 +205,6 @@ public void RefreshTrackedObject()
205205 Destroy ( transformWithOffset ) ;
206206 transformWithOffset = null ;
207207 }
208-
209- AttachToNewTrackedObject ( ) ;
210208 }
211209
212210 protected virtual void AttachToNewTrackedObject ( )
0 commit comments