Search Issue Tracker

Fixed in 2018.1.X

Votes

1

Found in

2018.1.0a5

2018.1.0b13

Issue ID

1025374

Regression

Yes

[2018.1] 'Can't add script behaviour VisualContainerAsset' error when adding script to GO with mismatched file and class name

Inspector Framework

-

Reproduction steps:
1. Create a new script.
2. Change the filename of that script.
3. Add script to an object in the scene.

Expected error message: "Can't add script component 'NewBehaviourScript' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match."

Actual error message: "Can't add script behaviour VisualContainerAsset. The script needs to derive from MonoBehaviour!"

Reproduced: 2018.1.0a5, 2018.1.0f1
Not reproducible: 2017.1.3p1, 2017.2.1p3, 2017.3.1f1, 2018.1.0a4, 2018.2.0b1

Comments (24)

  1. Destructor83

    May 28, 2018 19:35

    Yes I have this problem with Unity 2018.1.0f2

  2. Ricky2442

    May 22, 2018 11:49

    with Unity 2018.1.0f2

  3. Ricky2442

    May 22, 2018 11:48

    I'm getting this error with a newly created scripts.

  4. SAAARGE

    May 05, 2018 14:45

    I'm getting this error message on scripts that definitely derive from MonoBehavior that were working fine before the update. Here's an example of one of my scripts that is doing this that clearly shouldn't be:

    public class HUDController : MonoBehaviour
    {
    public static HUDController Instance { get; private set; }
    public GameObject healthIconPrefab;
    public static Timer timer;
    public Button gunButton;
    public Button meleeButton;

    public Text timerText;
    public Text scoreText;
    public Text coinText;

    public RectTransform ammoCounter;
    public HorizontalLayoutGroup healthLayoutGroup;
    public Slider staminaSlider;

    [HideInInspector] public Animator animator;
    private static GameObject[] bulletIcons;
    private static GameObject[] healthIcons;

    private void Awake()
    {

    if (Instance == null)
    Instance = this;
    else
    Destroy(gameObject);

    DontDestroyOnLoad(this);

    animator = GetComponent<Animator>();
    timer = ScriptableObject.CreateInstance<Timer>();
    }
    }

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.