Search Issue Tracker

By Design

Votes

0

Found in

2019.4

2020.3

2020.3.14f1

2021.2

2022.1

Issue ID

1383018

Regression

No

Variable values are not assigned when a Monobehaviour script has a constructor requiring a parameter

Scripting

-

Reproduction steps:
1. Open the attached project "Case_1383018" and load Scene "SampleScene"
2. Enter Play Mode
3. Observe the Console

Expected result: "someTestString" is printed in the Console
Actual result: "Null" is printed in the Console

Reproducible with: 2019.4.33f1, 2020.3.23f1, 2021.2.4f1, 2022.1.0a16

Notes:
- Issue is not reproducible when using a parameterless constructor

  1. Resolution Note (2022.1.X):

    This is actually by design:
    Instantiation of MonoBheviours is done by the engine in a very special way that can't be customized for performance reasons. One of the effects is that we never call parameterized constructors even if no default constructors exist.
    Also default constructors are called in non-totally obvious ways, so users should refrain from declaring constructors on Behaviours at all (see http://ilkinulas.github.io/development/unity/2016/05/30/monobehaviour-constructor.html)

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.