Sprite [] в массиве [] не работает - PullRequest
0 голосов
/ 10 июня 2018

В моем текущем проекте Unity у меня есть скрипт с Array[], и я хочу добавить к этому Array[1] a Sprite[].

Возможно ли это?

Это часть моего кода:

Array[] ObjectTypestobuy;
public Sprite[] Characters;

public Button[] ObjectButtons;

//...

ObjectTypestobuy[1] = Characters; //Start Method

//...
ObjectButtons[index].transform.gameObject.GetComponent<Image>().sprite = ObjectTypestobuy[currenttab[1]]; //this line of code isn't working. it shows an error at 'currenttab[1]'

Знаете ли вы, как решить эту проблему?Есть ли другие способы?

Обновление:

После работы над этой проблемой я получаю решение.Но это не работает.Я попытался сделать public Sprite[][] ObjectTypestobuy;, и затем я написал этот код в моей функции запуска:

        ObjectTypestobuy[0] = Characters;
        ObjectTypestobuy[1] = Helmets;
        ObjectTypestobuy[2] = Weapons;
        ObjectTypestobuy[3] = Mantles;
        ObjectTypestobuy[4] = Shields;

//..............................................

Это код функции запуска:

    public Sprite[][] ObjectTypestobuy;

    public Sprite[] Characters; 
    public Sprite[] Helmets;
    public Sprite[] Weapons;
    public Sprite[] Mantles;
    public Sprite[] Shields;

А потом яхотел, чтобы эта строка кода работала:

ObjectButtons[index].transform.gameObject.GetComponent<Image>().sprite = ObjectTypestobuy[currenttab][index]; // index is an integer

... но, к сожалению, это не сработало :(

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Массив - это абстрактный класс, поэтому на него нельзя ссылаться.Если вы хотите сохранить коллекцию спрайтов, я бы предложил вам использовать

List<Sprite[]> objectTypestobuy = new List<Sprite[]>();

. Этот подход намного проще и понятнее.

0 голосов
/ 11 июня 2018

Попробуйте:

Sprite[,] ObjectTypestobuy

Если вы хотите, чтобы все массивы имели одинаковую длину.Или:

Sprite[][] ObjectTypestobuy

Если вы хотите, чтобы в каждой строке были массивы разного размера.

Вы можете получить значения следующим образом:

ObjectTypestobuy[I, j]

В первом случае или:

ObjectTypestobuy[i][j]

Во втором случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...