UnityФорумОбщее

Делаю крестики-нолики на юнити. Как сделать чередование ходов и спроектировать игровое поле?

#0
9:31, 18 июля 2020

После мучений с opengl решил все-таки использовать юнити. Игру делаю простую - крестики-нолики чтобы набраться опыта.

Игра представляет собой 9 полей-объектов при клике на которых становятся активными расположенными на них объекты-фигуры (крестик или нолик). По сути поля это кнопки. Над каждым полем висят по две таких фигуры. Они не активны. В скрипте каждой из них в Start() прописано obj.SetActive(false).

В зависимости от прошлого хода при клике выбирается крестик или нолик и делается активным. Кнопки-поля прошу заметить работают один раз. Мне вот непонятно как привязать к полю фигуру-объект... То есть при клике в скрипте работает obj.SetActive(true), но как обратиться к объекту-фигуре из скрипта объекта-поля?

Еще непонятно где хранить переменную отвечающую за последний ход (в ней хранится данные о последнем игроке: 1 или 2)? Чтобы было чередование фигур.

Может я вообще не понимаю как делать пошаговые игры с действиями по клику на обьекте и спроектировал бредово...

#1
9:50, 18 июля 2020

Создаёшь объект "клетка" в сцене. В него вкладываешь крестик и нолик. Вешаешь на клетку скрипт, в котором есть две public переменных Transform и перетаскиваншь в эти поля вложенные в него крестик и нолик. В том же скрипте через функцию их и появляешь. Но сли они изначально выключены в редакторе, они могут не скомпилироваться. То есть по умолчанию в редакторе оставить и крестик и нолик видимыми и прятать через SetActive в функции Start.

Ну а затем копируешь клетку с вложенными объектами 9 раз и пользуешься

Я по началу удивился подходу программирования в Юнити, когда в слоты инвентаря реально переносятся объекты со всеми вложенными иконками. В C++ я бы делал по-другому, но в Юнити это реально самый удобный вариант

#2
9:59, 18 июля 2020

О, круто, спасибо!

UnityФорумОбщее

Тема в архиве.