Search Issue Tracker

Fixed in Unity 2019.3

Votes

28

Found in

2019.1.0f2

Issue ID

1146883

Regression

Yes

Re-enabling game object with "Toggle group" loses information about previously checked toggle

UI

-

-

Priority: 2Necessary for shipping a final release

-

Severity: 3Secondary functionality broken

Steps to reproduce:
1. Open attached project "Test.zip"
2. Go into play mode
3. There are 3 toggles at the top, select a red one (row of red toggles should appear on the left side)
4. Check the first toggle on the left side row (You can check any toggle, but remember your choice)
5. Press green toggle (from 3 toggles at the top)
6. Press red toggle again (from 3 toggles at the top)
-The first toggle is not selected anymore from the left row, instead, another toggle is checked randomly. (Attached a video)

Explanation: Toggles at the top disable/enable "Toggle group" (only a single game object with toggle group is active at a time)

Expected result: After re-enabling element with "Toggle group" it shouldn't uncheck previously checked toggle
Actual result: Re-enabling game object with "Toggle group" loses information about previously checked toggle and instead checks random toggle in the group

Note: Sometimes it takes a couple of tries to reproduce the bug (repeat steps from 3rd step)

Reproduced on: 2019.1.0a5, 2019.1.0a6, 2019.1.0a11, 2019.1.0f2, 2019.2.0a1, 2019.2.0a10
Doesn't reproduce on: 2017.4.0f1, 2018.3.13f1, 2019.1.0a1, 2019.1.0a3, 2019.1.0a4
Regressed in: 2019.1.0a5

Response avatar

Resolution Note:

By default, ToggleGroup is coded to activate/deactivate the container for all associated Toggle elements. When the container is deactivated, all contained Toggles will get their OnDisable called. This will cause the Toggle to unregister itself from the ToggleGroup. When a Toggle calls UnregisterToggle() on it's ToggleGroup, it is removed from the ToggleGroup's internal list. Previously, any time UnregisterToggle() was called on a ToggleGroup that is set to disallow an off state, the group will then scan its list for at least one checked Toggle. Because the checked toggle is ultimately removed from the list before the list is totally emptied, the group will attempt to fix itself and set the first Toggle in the list to be On. This creates unpredictable behavior, both because the order of the list is non-deterministic, and because the first list element is rarely the value that should be set to On. This PR moves the logic for ensuring that one Toggle is marked On to a new function. The only times that this function actually needs to be invoked are: a) when the ToggleGroup gets its Start() method invoked. This will ensure that a ToggleGroup created in the Editor has a valid state when loaded. b) when a Toggle is deleted from the ToggleGroup. If the checked toggle is deleted programmatically or via the scene hierarchy, the list must choose a new one. New Toggles that are added programmatically will fix the state of the ToggleGroup as happened previously.

Comments (29)

  1. 6b40fee4f6abe6474a714cb35f294c7f?d=mm

    carpetcleanercolumbia

    May 20, 2019 14:27

    Do they even bother looking for the fix?
    Collin | https://riversedgeoutfitters.com/

  2. 9e50d92e35dd03b932dfe3b27a2834d0?d=mm

    eladleb4

    May 20, 2019 09:31

    I wish we could vote for it again, this time for an earlier fix...

  3. 641725272087ef368ac0935b803c1b6e?d=mm

    SimonLemerle

    May 20, 2019 08:17

    Is it fix in 2019.1.3 ? Very annoying issue..

  4. 69632cee18eeebb27afe281cf169df14?d=mm

    joshuaprice153

    May 20, 2019 04:09

    I don't know how they can handle that but they're pretty resilient. https://www.acemobiledetailingorlando.com

  5. 3a14dd888e3786429407d4a45b016637?d=mm

    JoeysLucky22

    May 16, 2019 17:04

    Also voting for an earlier release for this fix.

  6. E27cc3d010bae81c759cee3c3a28de5e?d=mm

    Gloryiam

    May 16, 2019 16:42

    I posted in the forums about this here: https://forum.unity.com/threads/toggle-group-issue.679546/ - perhaps posting there also would get more attention from the Unity team?

  7. 34942f2b153cf0df8e48a46dba725233?d=mm

    juliocdep

    May 16, 2019 15:00

    I also vote for this fix to be released before the 2019.3. This problem breaks my game and I would not want to wait until the end of the year to use Unity 2019.

  8. C8a6b7a592066688cc24a4915fd189f4?d=mm

    Finnstan

    May 16, 2019 02:14

    I absolutely agree. The earlier that an update and fix will be released, the better.

    Finn │ https://random-ize.com/

  9. 6b270fbb4402a5018762fc22d7f67529?d=mm

    jkieffer-filament

    May 15, 2019 18:41

    This is a pretty big bug for us too. Updating Unity for features that you need so often breaks other features that you also need. A fix sooner than 2019.3 would be very appropriate considering the drastic change in behavior.

  10. 2329e0c12e2169025ff6a517adef4a32?d=mm

    timmypowergamer

    May 15, 2019 17:03

    Agreed that 2019.3 is far too long to wait considering 2019.2 is still only in beta. We are talking months away for a fix that is literally game breaking for many of us. I would also appreciate if this could be fast-tracked a bit more, please. Thanks!

All about bugs

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