Многократное исполнение Start в скрипте

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Многократное исполнение Start в скрипте

Сообщение ibadid1999 18 фев 2023, 05:01

Я создал префаб (объект и повешен скрипт на нем):
Синтаксис:
Используется csharp
void Start()
{
   Debug.Log("111");
}
 


В другом скрипте (уже с другого объекта) исполняю код:

Синтаксис:
Используется csharp
private GameObject rootBlock;
private GameObject[] blocks;

void Start()
{
  rootBlock = GameObject.Find("Ground_1");

  blocks = new GameObject[10];
   
  for (int i = 0; i < 10; i++)
   {
      blocks[i] = Instantiate(rootBlock, new Vector3(rootBlock.transform.position.x + i*rootBlock.transform.localScale.x,
                                                     rootBlock.transform.position.y, 0), Quaternion.identity);
   }
}


При этом в консоли 10 раз выводится текст "111". Вопрос почему? Как я понял копирование объекта инициирует компиляцию скрипта, но не понял почему так. И как правильно сделать, чтобы выполнялось только один раз?
ibadid1999
UNец
 
Сообщения: 1
Зарегистрирован: 18 фев 2023, 04:45

Re: Многократное исполнение Start в скрипте

Сообщение Saltant 18 фев 2023, 18:08

Start вызывается всегда в новом объекте.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20