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. Sir_Everard

    Aug 09, 2018 15:18

    Had this issue aswell. As suggested in the commens, setting the parent before moving the object seems to work.

  2. Twyker_gp

    Aug 07, 2018 18:51

    we are having issues with this as well. It mainly happens when we create primitives and then change their transform values. the colliders do not update correctly.

    This has been happening since 2017 and our solution was, to just deactivate the collider, wait one frame and then enable them again.

  3. Krueg82

    Aug 05, 2018 01:26

    I am having a similar issue in 2018.2.2f1. After instantiating a prefab and setting it's parent, if I set the transform.localPosition to Vector3(0, 0, 0) the object is placed in the correct position but the collider is at the world origin rather then the local origin. The collider gizmo draws in the correct place in the scene view though. If I nudge the object in the scene view the collider's position updates and it works as expected after that.

  4. kerethros

    Aug 02, 2018 14:43

    Just downloaded 2018.2.1f1 and this same issue happened to me. This happened to me also a couple of days before on a personal project i'm doing at home. I instantiate an object, set up its position and later set up its parent, somehow leaving the collision box way off from where it should be working (mind you, the box still appears in its correct position when I checked on the editor). Moving slightly the object made it work again correctly.

    MISTERFOOGY's workaround worked for me. Just set the parent BEFORE giving the object its position, which also made sense since unparented instantiated objects didn't suffer from this bug in my project.

    It's a quick work around but it's game ending if you don't luck out and find a thread in the issue tracker in time like I did.

    Thanks guys.

  5. Roobubba

    Aug 01, 2018 10:45

    I just updated to 2018.2.1f1 and my entire game was broken due to this issue.
    I used the fudge that MisterFoogy mentioned (thanks MisterFoogy!!) of setting position *after* parenting to ensure that colliders on child objects are actually moved with their gameobject, and it works.

    This needs to be fixed at the engine level as it's clearly a bug, and - at least in my case - an entirely game-breaking one.

  6. benVisiativ

    Jul 25, 2018 09:30

    By the way the bug is set as "Not Reproducible".
    But it is very easily reproductible.
    Just do as MAGIS_MARC says :
    "I get the problem when via script I re-parent a child game object to a temp-dummy object, transform the gameobject (containing the collider), and then reparent it back to its original parent . The collider remains stuck where the mesh was spawned."

  7. Magic_Marc

    Jul 24, 2018 14:15

    This bug broke the world.
    I get the problem when via script I re-parent a child game object to a temp-dummy object, transform the gameobject (containing the collider), and then reparent it back to its original parent . The collider remains stuck where the mesh was spawned.

  8. benVisiativ

    Jul 24, 2018 07:54

    We are currently stuck on the 2018.1.2f1 because of this bug.
    After this version, all the collider are in wrong position.
    Because of how our project works we can't use the workaround.
    I hope it gets fix soon

  9. juanfornos

    Jul 20, 2018 02:11

    Still happening to me in Unity 2018.2.0f2. I solved it with MISTERFOOGY workaround.

  10. onnep

    Jul 18, 2018 08:24

    Still occurs. We instance 3D objects to a 3D scene with box colliders that are then selected in screenspace with a mouse. When instaced, they don't work in the intended position. But after doing the on/off for the 'IsTrigger' - hack, it works correctly.

    This used to work correctly(without the hack) in our project for Unity 2017.4.2f2, but stopped working after we tried to upgrade to Unity 2018.2.0f2.

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.