Как сделать независимые друг от друга объекты с одинаковыми скриптами на них?

В Unity, чтобы создать независимые объекты с одинаковыми скриптами на них, вам придется использовать Prefabs и Instantiate.

1. Создайте новый GameObject и прикрепите к нему скрипт, который вы хотите использовать на других объектах. Этот скрипт будет служить в качестве шаблона или префаба.

2. Когда вы закончите настройку этого GameObject, перетащите его в папку "Assets" в проекте. Это создаст префаб, который может быть использован для создания множества независимых экземпляров этого объекта.

3. Теперь, чтобы создать новый экземпляр на сцене, вы можете использовать функцию Instantiate из скрипта или создать объект в редакторе. Если вы хотите создать много объектов программно, вам придется использовать функцию Instantiate.

Пример кода для создания множества объектов программно:

public GameObject prefab; // ссылка на префаб

void Start()
{
    for (int i = 0; i < 10; i++) // создаем 10 экземпляров
    {
        Instantiate(prefab, new Vector3(i * 2, 0, 0), Quaternion.identity);
    }
}

В этом примере мы создаем 10 экземпляров префаба, каждый из которых будет находиться на позиции (i * 2, 0, 0) с нулевым вращением вокруг оси (Quaternion.identity).

4. Теперь каждый экземпляр будет независимым объектом с тем же скриптом, что и префаб. Вы можете изменять параметры каждого экземпляра отдельно или использовать одинаковую логику для всех объектов, в зависимости от ваших потребностей.

Вот и все! Теперь у вас есть независимые объекты с одинаковыми скриптами на них в Unity. Вы можете создать сколько угодно экземпляров этих объектов и изменять их поведение независимо друг от друга.