Search Issue Tracker

Not Reproducible

Votes

36

Found in

2017.2.0f3

Issue ID

962315

Regression

No

Colliders are not updating to match attached gameObject location

Physics

-

Colliders are not updating to match attached gameObject location. After their object is stored and returned from a pool (reparenting, deactivating and re-activating the gameObject in the process) they become stuck at the location they were at when first activated. The collider gizmo does not reflect this.

To reproduce:

1. Download attached project "WoP Bugreport.zip" and open in Unity
2. Open "bug_example" scene and enter Play mode
Note: Enable gizmos in the game view for better visual cues to raycasting
3. Using a gamepad navigate the player character to the weapon on the ground and pick it up using the 'B' button (XBOX controller)
4. Use the 'X' button (XBOX controller) to fire the weapon at the enemy, killing them and causing them to return to the pool.

Notes:
- The enemies spawn one at a time from a pool of 10 total.
- After the 10th enemy has been dispatched they will start recycling. At this point observe that both the aim assist feature and the collision of projectiles confirm the enemy's collider remains at their initial spawn point as they move about.
- By selecting the enemy in the hierarchy and disabling/enabling their sphere collider, observe that it moves to the latest position of the game object but does not update.
- Workaround: By adjusting any property of the sphere collider, observe that the collider now begins to follow the game object as would normally be expected
- This issue appears on Unity Editor and Standalone Build

Reproduced on Unity 2017.2.0f3 and 2017.2.0p1
Not reproduced on Unity 2018.1.0a2
Could not check for regression on Unity 2017.1 and 2017.3 because XBOX Controller does not work for some reason

Comments (43)

  1. zornor90

    Jul 08, 2018 22:35

    Can confirm that this is happening on Unity 2018.2.

  2. MisterFoogy

    Jul 04, 2018 14:13

    I was having a similar issue when creating new gameobjects as children and adding spherecollider components to them. What I was doing was: new Gameobject() -> add spherecollider -> set position to that of parent -> set parent. This would cause the collider to trigger like if it was placed at the world origin, even though in the inspector it seems to be at the right place. I solved it by instead doing: new GameObject() -> add spherecollider -> set parent -> set position to that of parent.

  3. EvalDaemon

    Jun 29, 2018 19:51

    Just upgraded to 2018.1.6f and yes this is happening. Toggling isTrigger manually or by code fixes it, but has to be done on every insantiated game object collider.

  4. KKOHNO

    Jun 05, 2018 10:25

    Getting this in 2018.2 beta 5 for box colliders too!!!

  5. jstroh

    May 25, 2018 03:10

    Getting this in 2018.2 beta 5 for box colliders.

  6. Kaznafein

    Apr 08, 2018 02:54

    This is still happening in Unity 2017.3.1f1 - I'm not sure what triggers it, but I just noticed when moving an object (in edit mode) that the collider stayed in place and did not update its position. I assumed the editor was in a bad state, so I restarted, but afterwards the collider still did not move with the object.

    Testing other objects it looks like every game object in my project is now exhibiting this same behavior... (This is quite crippling)

  7. ireth_86

    Mar 09, 2018 15:06

    Still have the issue in 2017.0.f3.
    The "isTrigger" workaround doesn't work for me, but adding a Rigidbody with "Is kinematic" did it.

  8. Supergeek

    Feb 14, 2018 15:47

    A brief update. Toggling IsTrigger on and off again in code fixes it. I'm leaving it like this for now so I can just move on. Hopefully it will be fixed in the next release.

  9. Supergeek

    Feb 14, 2018 15:38

    This is still happening with 2017.3.1f1. I'm moving a sprite with Vector3.MoveTowards and I can see the BoxCollider2D remain behind when the sprite moves. The collider instantly updates to the correct position if I toggle AutoTiling, IsTrigger, UsedByEffector, or UsedByComposite. (I am not using any tiling features.) Clicking EditCollider puts the normal collider edit box around the right spot, but the old collider outlined in green in the wrong position is still visible!

  10. BurningToad

    Nov 15, 2017 22:21

    Hello! I think this issue was just fixed in 2017.2.0p2 - see this related issue that was marked fixed in the patch notes. It solved my problems related to this:
    https://issuetracker.unity3d.com/issues/moving-a-collider-via-script-does-not-update-its-position-if-it-was-disabled-on-start-and-enabled-after

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.