﻿# V3205\. Unity Engine\. Improper creation of 'MonoBehaviour' or 'ScriptableObject' object using the 'new' operator\. Use the special object creation method instead\.

Анализатор обнаружил нежелательное создание экземпляра классов 'MonoBehaviour' или 'ScriptableObject' с помощью оператора 'new'\. Объекты, созданные таким образом, не будут связаны с движком, поэтому такие специфичные Unity\-методы, как 'Update', 'Awake', 'OnEnable' и прочие, вызываться не будут\. 

Ниже приведён пример:

```cpp
class ExampleSO: ScriptableObject
....
class ExampleComponent: MonoBehaviour
....
void Awake
{
  var scriptableObject = new ExampleSO();
  var component = new ExampleComponent();
}
```

Чтобы избежать потенциальных проблем, вместо оператора 'new' для создания экземпляров этих классов следует использовать один из следующих методов:

* 'GameObject\.AddComponent' — для создания экземпляра класса 'MonoBehaviour';
* 'ScriptableObject\.CreateInstance' — для создания экземпляра класса 'ScriptableObject'\.

Исправленный код:

```cpp
class ExampleSO: ScriptableObject
....
class ExampleComponent: MonoBehaviour
....
void Awake
{
  var scriptableObject = ScriptableObject.CreateInstance<ExampleSO>();
  var component = this.gameObject.AddComponent<ExampleComponent>();
}
```