# V3212. Unity Engine. Pattern matching does not correctly handle destroyed objects derived from 'UnityEngine.Object'.

Анализатор обнаружил потенциальную ошибку, связанную с тем, что производный от `UnityEngine.Object` объект был использован с pattern matching'ом для проверки на `null`.

Согласно документации Unity, не рекомендуется использовать pattern matching с объектами, производными от `UnityEngine.Object`.

Дело в том, что проверка на `null` с помощью pattern matching не учитывает возможность уничтожения объектов, производных от `UnityEngine.Object`. Вследствие чего проверка может иметь некорректный результат.

Рассмотрим пример:

    class CustomComponent: MonoBehaviour
    {
      public bool HitConfirm(....)
      {
        Projectile bullet;
        ....
        if(....)
          Destroy(bullet);

        if (bullet is not null)
        {....}
      }
    }

В данном случае, при проверке `bullet` с помощью pattern matching'a, не будет учитываться возможность, что объект может быть уничтожен.

Чтобы это исправить, лучше использовать проверку с помощью оператора `==` или `!=`.

Исправленный вариант:

    class CustomComponent: MonoBehaviour
    {
      public bool HitConfirm(....)
      {
        Projectile bullet;
        ....
        if(....)
          Destroy(bullet);

        if (bullet != null)
        {....}
      }
    }