Search Issue Tracker

Fixed in Unity 2017.2

Votes

56

Found in

5.6.0b9

Issue ID

882791

Regression

Yes

Editor crashes when adding text component to game object in play mode via the script

UI

-

-

Priority: 2Necessary for shipping a final release

-

Severity: 1Crash or major loss of functionality

How to reproduce:
1. Open the attached project
2. Open and play ExampleScene
Result: Editor freezes and crashes after some time

Note: crash log is not generated. If one comments this part uiText = uiTextGameObject.AddComponent<Text>(); from DrawableLabel.cs line 96 project doesn't crash. it somehow forces the OnDisabled Unity message fire up for the AFPSCounter.cs MonoBehaviour. It leads to the infinite cycle of the OnDisable \ OnEnable messages

Reproducible: 5.6.0b8, 5.6.0b10
Not reproducible: 5.6.0b7

Comments (3)

  1. 4356897a8ba93f63c91cef434ad96880?d=mm

    Krstn

    Jun 08, 2017 07:41

    When can we expect this to be released?
    5.6.1f1 still has this bug.

  2. 450b96fd74cbc40d7b2649b9ed0b7a56?d=mm

    HarryCodder

    Apr 10, 2017 07:24

    Yeah but this workaround will not work in an Awake call because of this bug :
    https://issuetracker.unity3d.com/issues/error-when-creating-a-recttransform-component-in-an-awake-call-of-an-instantiated-monobehaviour
    The change you mentioned seems to cause a lot of UI related problems, how did it make it to so many branches ?

  3. Dc1b254760f44d16cd4f684456bf554f?d=mm

    karl_jones

    Mar 01, 2017 16:48

    We have made some changes that require us to disable and then reenable the entire transform hierarchy whenever we replace a Transform with a RectTransform. This has created the undesirable side effect of calling OnDisable/OnEnable on all scripts attached to the hierarchy. This is a behaviour that we intend to address in the future.

    There is a simple workaround for this though. The problem is caused by when we swap the transform, so a simple solution is to add a RectTransform or UI element to the GameObject on creation so that the swap does not need to be performed.

    For example
    var go = new GameObject("Canvas", typeof(RectTransform));

All about bugs

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