Страница 1 из 1

Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 15:43
archimozes
Доброго времени суток. Такой вопрос. Есть массив кнопок 4х4, и массив их позиций. При нажатии на кнопку нахожу ее GO. Как найти нажатую кнопку в массиве.
В Виндовс форм делал так. Определяем его месторасположение в массиве по ассоциированным координатам:
Синтаксис:
Используется csharp
int i = ((Point)btn.Tag).X;
int j = ((Point)btn.Tag).Y;
 

А в Юнити никак не могу понять как реализовать подобное. Спасибо

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 16:00
samana
Покажите ваш массив, так как массивы есть разные. Вообще, что-то найти в массивах, обычно используется его метод indexOf.

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 16:13
archimozes
Синтаксис:
Используется csharp
GameObject[,] field;
Vector2[,] position;
 

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 16:49
samana
Синтаксис:
Используется csharp
Vector2 xyOfObject;
for (int y = 0; y < 4; y++)
{
    for (int x = 0; x < 4; x++)
    {
        if (field[x, y] == myGameObject)
        {
            xyOfObject = new Vector2(x, y);
        }
    }
}


С двумерными массивами как-то сложно (лично мне). Проще использовать вложенные массивы, т.е. массив массивов.

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 17:49
snezhok_13
Мне кажется вы задачу неправильно решаете. Скорее всего не нужно вам искать индекс кнопки, которую нажали.
Наверняка вам подойдет обработчик нажатия, в который вы передадите позицию из самой кнопки.

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 19:03
samana
Здесь совсем не понятна задача, зачем хранить отдельный массив позиций объектов, если эту позицию всегда можно вытащить из объекта. В общем условия загадочные.

Re: Определяем месторасположение в массиве

СообщениеДобавлено: 19 июл 2017, 21:38
archimozes
Я делаю игру типа пятнашек, при нажатии на кнопку она должна поменяться с пустой клеткой. Я не могу понять какая кнопка нажата в массиве, чтобы дальше с ней работать.