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

Scripting

-

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

  1. 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".

Add comment

Log in to post comment

All about bugs

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