После мучений с opengl решил все-таки использовать юнити. Игру делаю простую - крестики-нолики чтобы набраться опыта.
Игра представляет собой 9 полей-объектов при клике на которых становятся активными расположенными на них объекты-фигуры (крестик или нолик). По сути поля это кнопки. Над каждым полем висят по две таких фигуры. Они не активны. В скрипте каждой из них в Start() прописано obj.SetActive(false).
В зависимости от прошлого хода при клике выбирается крестик или нолик и делается активным. Кнопки-поля прошу заметить работают один раз. Мне вот непонятно как привязать к полю фигуру-объект... То есть при клике в скрипте работает obj.SetActive(true), но как обратиться к объекту-фигуре из скрипта объекта-поля?
Еще непонятно где хранить переменную отвечающую за последний ход (в ней хранится данные о последнем игроке: 1 или 2)? Чтобы было чередование фигур.
Может я вообще не понимаю как делать пошаговые игры с действиями по клику на обьекте и спроектировал бредово...
Создаёшь объект "клетка" в сцене. В него вкладываешь крестик и нолик. Вешаешь на клетку скрипт, в котором есть две public переменных Transform и перетаскиваншь в эти поля вложенные в него крестик и нолик. В том же скрипте через функцию их и появляешь. Но сли они изначально выключены в редакторе, они могут не скомпилироваться. То есть по умолчанию в редакторе оставить и крестик и нолик видимыми и прятать через SetActive в функции Start.
Ну а затем копируешь клетку с вложенными объектами 9 раз и пользуешься
Я по началу удивился подходу программирования в Юнити, когда в слоты инвентаря реально переносятся объекты со всеми вложенными иконками. В C++ я бы делал по-другому, но в Юнити это реально самый удобный вариант
О, круто, спасибо!
Тема в архиве.