@@ -75,17 +75,20 @@ private void UpdateColliderType()
75
75
// remove old colliders
76
76
bool shouldCreateNewCollider = false ;
77
77
var oldBoxCollider = handle . GetComponent < BoxCollider > ( ) ;
78
+
79
+ // Caution, Destroy() will destroy one frame later.
80
+ // Do not check later for presence this frame!
78
81
if ( oldBoxCollider != null && config . HandlePrefabColliderType == HandlePrefabCollider . Sphere )
79
82
{
80
83
shouldCreateNewCollider = true ;
81
- Object . DestroyImmediate ( oldBoxCollider ) ;
84
+ Object . Destroy ( oldBoxCollider ) ;
82
85
}
83
86
84
87
var oldSphereCollider = handle . GetComponent < SphereCollider > ( ) ;
85
88
if ( oldSphereCollider != null && config . HandlePrefabColliderType == HandlePrefabCollider . Box )
86
89
{
87
90
shouldCreateNewCollider = true ;
88
- Object . DestroyImmediate ( oldSphereCollider ) ;
91
+ Object . Destroy ( oldSphereCollider ) ;
89
92
}
90
93
91
94
if ( shouldCreateNewCollider )
@@ -211,7 +214,10 @@ protected override void RecreateVisuals()
211
214
{
212
215
// get old child and remove it
213
216
obsoleteChild . parent = null ;
214
- Object . DestroyImmediate ( obsoleteChild . gameObject ) ;
217
+
218
+ // Caution, Destroy() will destroy one frame later.
219
+ // Do not check later for presence this frame!
220
+ Object . Destroy ( obsoleteChild . gameObject ) ;
215
221
}
216
222
else
217
223
{
@@ -263,7 +269,10 @@ private Bounds CreateVisual(int handleIndex, GameObject parent)
263
269
// so we can manually add our own properly configured collider later.
264
270
var collider = handleVisual . GetComponent < SphereCollider > ( ) ;
265
271
collider . enabled = false ;
266
- Object . DestroyImmediate ( collider ) ;
272
+
273
+ // Caution, Destroy() will destroy one frame later.
274
+ // Do not check later for presence this frame!
275
+ Object . Destroy ( collider ) ;
267
276
}
268
277
269
278
// handleVisualBounds are returned in handleVisual-local space.
0 commit comments