Search Issue Tracker
By Design
Votes
0
Found in
2018.4
2019.4
2020.3
2020.3.6f1
2021.1
2021.2
Issue ID
1340617
Regression
No
ScriptableSingleton throws a warning and error message when implementing IActiveBuildTargetChanged and switching Platforms
How to reproduce:
1. Open the attached project's Scene labeled "SampleScene"
2. In Build Settings (File->Build Settings), switch the active Platform to another one
3. Switch the Platform back to the initial one
4. Inspect the Console Window
Expected result: No errors nor warnings are logged
Actual result: "ScriptableSingleton already exists" error and "Manager must be instantiated using the ScriptableObject.CreateInstance method instead of new Manager." warning are thrown
Reproducible with: 2018.4.36f1, 2019.4.28f1, 2020.3.11f1, 2021.1.11f1, 2021.2.0a20
Note:
- More errors are thrown for every switched Platform
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
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
Resolution Note:
This is actually by design. Editor will always instantiate any type implementing IActiveBuildTargetChanged by itself.
If a signleton needs to intercept such an event, just create a separate class implementing IActiveBuildTargetChanged, and make it access your singleton trough "MySingletonClass.instance".