Анализатор обнаружил нежелательное создание экземпляра классов 'MonoBehaviour' или 'ScriptableObject' с помощью оператора 'new'. Объекты, созданные таким образом, не будут связаны с движком, поэтому такие специфичные Unity-методы, как 'Update', 'Awake', 'OnEnable' и прочие, вызываться не будут.
Ниже приведён пример:
class ExampleSO: ScriptableObject .... class ExampleComponent: MonoBehaviour .... void Awake { var scriptableObject = new ExampleSO(); var component = new ExampleComponent(); }
Чтобы избежать потенциальных проблем, вместо оператора 'new' для создания экземпляров этих классов следует использовать один из следующих методов:
Исправленный код:
class ExampleSO: ScriptableObject .... class ExampleComponent: MonoBehaviour .... void Awake { var scriptableObject = ScriptableObject.CreateInstance<ExampleSO>(); var component = this.gameObject.AddComponent<ExampleComponent>(); }