«У меня есть« n »игровых объектов (n варьируется в зависимости от условий). Следовательно, прямое публичное обращение к игровым объектам вручную невозможно»
Именно поэтому существуют префабы.
Создайте сценарий под названием PlayerStats и предоставьте ему необходимые поля (Stength, Speed, Endurance и т. Д.).
Создайте игровой объект.Назовите это PlayerObj или что-то подобное.Добавьте к нему компонент PlayerStats.Добавьте все привязки, которые вам нужны (если вам нужно) для скрипта, но все привязки должны быть к объектам в PlayerObj (или другим компонентам самого PlayerObj)
Например, создайте StrengthText как дочерний объект в PlayerObj и привязать его к PlayerStats.Strength
Сделать заранее подготовленный PlayerObj.
При создании объектов, которые вы кладете в карты, это должны быть экземпляры, созданные изprefab
Теперь каждый из этих экземпляров имеет PlayerStats и относительные привязки к соответствующим экземплярам.
Так что вы можете сделать это:
while(i<25 && Cards[i]!=null)
{
Cards[i].gameObject.GetComponent<PlayerStats>().Strength.text = Team1Roster[i];
i++;
}