Как управлять «дочерними объектами» на «уровне» при создании игр в Unity?C#

Место общения программистов C#
Anonymous
Как управлять «дочерними объектами» на «уровне» при создании игр в Unity?

Сообщение Anonymous »

Я собираюсь создать игру на Unity. (Я новичок в программировании)
На каждом уровне Unity есть границы и стрелки, которые являются игровыми объектами.
Что такое наиболее эффективный код C# для управления ими?
Они не изменяются и останутся до конца игры.
Мне было трудно управлять каждым объектом, объявляя его как публичная переменная все отдельно. Я неоднократно дергал каждый объект мышкой. Я прикрепил это к скрипту плеера.(PlayerManager)
пример:

Код: Выделить всё

public GameObject level1;

public GameObject border1OfLevel1;
public GameObject border2OfLevel1;
public GameObject border3OfLevel1;

public GameObject arrow1OfLevel1;
public GameObject arrow2OfLevel1;

public GameObject level2;
//and so on
Поэтому я попросил Chat GPT рассказать мне о различных методах объявления переменных (?) для решения этой проблемы. Это методы, которые он рассматривает.
  • Tuple
  • Set
  • Array
  • list
  • Словарь
  • Stack
  • очередь
    LinkedList
Я услышал ответ Chat Gpt, но до сих пор не понимаю созданный им код. Я не могу сказать, эффективно ли это.
Вот его код:

Код: Выделить всё

GameObject[][] borderObjects = new GameObject[backgrounds.GetLength(0)][];

for (int i = 0; i < backgrounds.GetLength(0); i++)
{

int numberOfBorders = backgrounds[i].transform.childCount;
borderObjects[i] = new GameObject[numberOfBorders];

for (int j = 0; j < numberOfBorders; j++)
{

Transform borderTransform = backgrounds[i].transform.GetChild(j);

borderObjects[i][j] = borderTransform.gameObject;
}
}
Я также пытался использовать функцию Prefab Unity, но не смог ее использовать, поскольку функции каждого объекта были разными.
Если вы заняты, буду признателен если бы вы могли связать меня с соответствующим сайтом, который может быть полезен.

Подробнее здесь: https://stackoverflow.com/questions/788 ... s-in-unity

Вернуться в «C#»