Опыт разработки первой игры на Unity, часть 4

Или о том, как я обманываю читателей

Опыт разработки первой игры на Unity, часть 4
2525

Декомпозировать задачи это как? Можно по подробнее?

Мм, например, я хочу сделать возможность выбрать героев, которые будут участвовать в битве. Звучит как готовая задача. А что мне для этого нужно?
1) Сделать так, чтобы появилась сама возможность выбрать героев (т.е список героев, отображаемых снизу)
2) Сделать так, чтобы при нажатии на героя он появлялся в нужном месте сверху
3) Сделать так, чтобы все герои, появившиеся сверху, участвовали в битве
4) Сделать так, чтобы после битвы герои не пропадали с поля сверху (т.е оставались выбранными)
_________________________________

Одна задача превратилась в целых 4 - но уже проще. Но все равно пока непонятно, что делать. Разберемся с задачей 1 - что для этого нужно сделать?
1.1) Создать поле, которое будут заполнять доступные игроку герои
1.2) Создать поле сверху, на котором в нужных позициях будут появляться герои, участвующие в битве
1.3) Найти доступных игроку героев
_________________________________

Неплохо. Теперь разберемся, что нужно сделать для 2)
_________________________________

2.1) Заполнить героями поле снизу
2.2) Сделать так, чтобы на этих героев можно было нажать
2.3) Сделать так, чтобы при нажатии они заполняли первый пустой слот под героев сверху
2.4) Сделать так, чтобы при повторном нажатии они освобождали занимаемый слот
2.5) При этом освоившийся слой должен становится пустым - т.е. если нажать на другого героя, он займет именно освободившееся место, если оно встречается раньше остальных
_________________________________

Ну и так далее. Выглядит список страшно - особенно когда начинаешь углубляться все дальше и дальше (всякие 2.1.2.1.1.1.4 и так далее - т.е продолжаешь разбивать задачи на все более мелкие). Но в итоге у тебя получается не одна большая задача, которую непонятно как делать и с чего вообще начать, а список мелких, понятных и очень простых задач из разряда:
1) Добавить на кнопку AddListener
2) Написать туда "SetPlace = new Vector3 (1,0,0);"
_________________________________

Ну и так далее. Т.е. получаешь простейшие задачи, решение которых очень легко найти в интернете или в имеющимся опыте

1