Search Issue Tracker
By Design
Votes
2
Found in
2017.4
2019.3.5f1
2020.2
Issue ID
1229008
Regression
No
Serialized field values in different Platform Dependent Compilation directives are reset in the Editor when switching platforms
How to reproduce:
1. Open the "SampleScene" Scene in the attached "1229008.zip" Unity project
2. Select the "GameObject" GameObject in the Hierarchy and navigate to the Inspector
3. In the NewBehaviourScript component, change the serialized field values
4. Switch to MacStandaloneSupport, then back to iOS
Expected result: the serialized field values remain as they were set
Actual result: the fields are reset to primary values ("0")
Reproducible with: 2017.4.38f1, 2018.4.19f1, 2019.3.6f1, 2020.1.0b2, 2020.2.0a4
Notes:
1. Reproducible when switching various platforms, but a change in the script is needed
Comments (2)
-
makaka-org
Mar 20, 2020 17:49
Same Issue.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Some UXML Template Asset foldouts appear enabled when all fields inside are disabled
- URP Terrain Demo crash on burst_signal_handler after Generating lighting
- Project window button icons are poorly visible and their shades differ in Light theme
- GC.Alloc called by HDRenderPipeline.LensFlareMergeOcclusionDataDrivenPass() when playing the default HDRP Sample Template project
- Automatic LOD fails and SRP Batcher incompatibility occurs when using spline-based quad-topology meshes
Resolution Note:
The serialization system, do not save the state pr platform, as you've noticed.
How I would do this would be to have the pr platform settings in something separate, ie. json file pr platform, and then load the settings for the target platform.
Either use InitializeOnLoad or ISerializationCallbackReceiver
https://docs.unity3d.com/ScriptReference/InitializeOnLoadAttribute.html
https://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.html