Search Issue Tracker

Duplicate

Votes

0

Found in

5.6.2p3

Issue ID

942001

Regression

Yes

A particular script is not recognized as a MonoBehaviour

Scripting

-

The script seems to be not recognized as MonoBehaviour if it is in a custom namespace AND there is a preprocessor directive:
#if UNITY_EDITOR
#else

#endif

If the empty line between #else and #endif is removed OR class is moved out of the custom namespace, everything works fine again.

To reproduce:

1. Open the project, attached by the tester (unrecognizedClass.zip)
2. Add test.cs script to any game object in the scene

Expected: a script is recognized as a MonoBehaviour regardless of whether it is in a custom namespace and there is a particular preprocessor directive
Actual: a script cannot be added to the game object, even though it is a MonoBehaviour and class name is the same as the script's name, due to the preprocessor directives and custom namespace

Reproduced in 5.5.0b5, 5.5.4p2, 5.6.2p3, 2017.1.0p4, 2017.2.0b8, 2017.3.0a4
Did not reproduce 5.4.5p4, 5.5.0b4
Regression introduced in 5.5.0b5

  1. This is a duplicate of issue #927189

    Scripts break with Unix/Mac/LF style line endings

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.