Search Issue Tracker

Duplicate

Votes

1

Found in

5.2.0p1

Issue ID

728950

Regression

Yes

Upgrading project from 5.0 breaks Event Triggers

UI

-

How to repro from scratch:

- in Unity 5.0:
- create scene, delete everything add a game object
- add an event trigger
- add a event type (ie "Pointer Down")
- add a handler (ie <TheGameObject>.transform.sendMessage("aaa"))
- create a prefab from this object
- on the scene instance, add a second handler (ie <TheGameObject>.transform.sendMessage("bbb")), displayed in bold as it's a prefab override
- force text serialization in editor settings
- save the scene (ie "scene.unity")

- in Unity 5.3:
- open the project
- notice only the first handler is present ("aaa")
- close the project
- open the scene file in a text editor
- notice how the new handler tries to modify the "delegates" property of the trigger instead of the new "m_Delegates"
- replace "delegates" by "m_Delegates"
- reopen the project+scene
- the second handler is now present

note:
the prefab itself still references "delegates" instead of "m_Delegates", but that works. In EventTrigger.cs, this is present:
[FormerlySerializedAs("delegates")]
[SerializeField]
private List<Entry> m_Delegates;
[Obsolete("Please use triggers instead (UnityUpgradable) -> triggers",true)]
public List<Entry> delegates;

so it looks like the "FormerlySerializedAs" is misused when deserializing prefab instances.

Original repro:
1. Open the attached project in Unity 5.0
2. Open and play Scene1 scene
3. Click buttons "Issues 1" >"Choise 2"> "Issue 2" >"Arrow"
4. Notice that it all works
5. Open Project with newer Unity version 5.1, 5.2, 5.3
6. repeat 2 and 3 steps
7. Notice that "Choice2" and "Arrow" doesn't work

Note:
-"Choice2" button: Event method is still in "HorizontalLayout2Buttons">"MenuColumn2Buttons">"Button2"as it was created in prefab. If you delete it and recreate the same EventTrigger, it will work (Scene2)
-"Arrow" button: Another event method which was created in the scene view and not applied to a prefab "MenuNextPage" doesn't exist in scene view, it has to be created again (Scene3)

Add comment

Log in to post comment