Как мне обратиься и изменить массив из другого скрипта?
Мне нужно обратиться к массивы из другого скрипта. Тип массива 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);
}
}
}