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

Мне нужно обратиться к массивы из другого скрипта. Тип массива GameObject. Мне нужно включать и отключать один из элементов этого массива. И добавлять и удалять эти элементы.

Я обозначил переменную вот так

public GameObject[] balls;

и одна из моих попыток получить её

public GameManager gm;
private GameObject[] balls = gm.balls;
private void Awake()
{
    gm = GetComponent<GameManager>();
}

Ответы (1 шт):

Автор решения: Nikolay Stuff

У вас есть скрипт

public class Script1: MonoBehaviour
{
  public GameObject[] balls;
  //В инспекторе вы помещаете в массив какие-то объекты;
}

И есть второй класс:

public class Script2: MonoBehaviour
{
  private Script1 _script1;
  private GameObject[] _balls;
  private void Awake()
 {
   _script1 = GetComponent<Script1>();
   _balls = _script1.balls; 
 }
 private void DoSomethingWithArray()
 {
   for(int i = 0; i < _balls.Count; i++)
   {
     //тут происходит перебор массива и выключение всех объектов в нём.
     //если вам нужен какой-то определённый объект в массиве, 
     //то лучше использовать не массив,а Dictionary<K, V>
     _balls[i].SetActive(false);
   }
 }
}
→ Ссылка