Although it is actually a Unity bug IMHO, I have encountered an issue with deserialization of CursorIcon on Windows Phone 8. In a rudimentary effort to fix this issue without the need of a fix of the Unity engine - 5.0.1 - I encountered the following.
CursorIcon, marked with System.Serializable, inherits from CursorIconBase, also marked with System.Serializable. The CursorManager maintains a List of CursorIcon instances, and it also marked with System.Serializable.
Since the issue occurs in deserialization my first hint was to merge CursorIconBase into CursorIcon as a single class, marked with System.Serializable. Now running the demo on the Windows Phone is without deserialization error(s).
I noticed CursorIconBase is used in one other place, MenuGraphic. I am going to file a bug report at Unity as well, but in the mean time, is MenuGraphic dependent on it's graphic field being a CursorIconBase, or is it possible to use CursorIcon directly without any issues in MenuGraphic?
I believe it is of interest inheriting Serializable classes from Serializable classes (although I also read inheriting from not marked as such classes) can cause issues in the Windows mobile/metro area.
Cheers!
Jorrit
Comments
You should be able to use a CursorIcon in MenuGraphic, but that's just a hunch.
But you're right: there is no difference at all when it comes to CursorIcons on iOS/Android. As the Unity dev said, Unity's serialization method is different on WP8 - I think this is more of a case of Unity / AC just working differently in this case, and not so much a bug.
AC has never been Windows Phone compatible, though I try to offer advice when I can. In this case, there's nothing more I can do - if you bought AC on the basis that it was WP8-ready, then please email/PM me your invoice number and I'll issue you a refund.