@Kory27

Как изменить значение массива, если он в другом скрипте?

Я хочу изменить значение массива, который находится в другом скрипте. Но у меня не получается, мне выдает ошибку "IndexOutOfRangeException: Index was outside the bounds of the array.", хотя с обычной переменной работает нормально
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script1 : MonoBehaviour {

public int[] Array = new int[3];

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Script2: MonoBehaviour
{
 
    public Script1 Script1;
    void Update()
    {
        
        if(Input.GetKeyDown("space"))
        {
            Script1.Array[0] = 1;
        }

    }
}
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
LittleBob
@LittleBob
Вам сначала нужно получить этот скрипт в методе Start.
Я делаю это так:
Script1 = GameObject.Find("объект на котором скрипт").GetComponent<Script1>();

То есть, находите в иерархии объект по имени, на котором висит скрипт и получаете его.
Либо можете просто создать ссылку через public в инспекторе и закинуть объект самостоятельно, после опять таки с помощью GetComponent получив скрипт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@NIKROTOS
Начинающий программист.
Скажи этому скрипту изменить свой массив( вызови соответствующий метод)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы