Unity: как разрешить только один экземпляр компонента

Метод 1: шаблон Singleton
Реализуйте шаблон Singleton для класса компонента. Этот шаблон гарантирует, что в игре существует только один экземпляр компонента.

public class MyComponent : MonoBehaviour
{
    private static MyComponent instance;
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }
    }
}

Метод 2: атрибут RequireComponent
Используйте атрибут RequireComponent, чтобы автоматически добавить компонент в GameObject, если он не существует. Такой подход гарантирует, что будет подключен только один экземпляр компонента.

[RequireComponent(typeof(MyComponent))]
public class MyComponent : MonoBehaviour
{
    // Your component code here
}

Метод 3: проверка компонента
В своем коде вручную проверьте, существует ли компонент, прежде чем добавлять его. Если он уже существует, вы можете запретить создание нескольких экземпляров.

public class MyComponent : MonoBehaviour
{
    private void Awake()
    {
        MyComponent existingComponent = FindObjectOfType<MyComponent>();
        if (existingComponent != null && existingComponent != this)
        {
            Destroy(gameObject);
        }
    }
}