Когда мы говорим о чем-то модульном, мы имеем в виду нечто, состоящее из разных частей или частей, которые объединяются в единое целое. Когда дело доходит до программирования, вы можете использовать один сценарий для обработки нескольких объектов, каждый со своим уникальным поведением. В этой статье мы узнаем, как эффективно создать модульную систему повышения мощности!

Как создать модульную систему включения в Unity

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

  1. Вам нужно назначить глобальные переменные, чтобы отслеживать бонусы. В этом примере я использую переменные типа int для идентификации своих бонусов.

2. Создайте глобальную переменную типа int для отслеживания текущего идентификатора включения питания. Это будет SerializeField, чтобы мы могли настроить его значение в инспекторе, что также полезно для отладки и тестирования.

3. В инспекторе назначьте соответствующие значения вашим объектам включения, так код будет различать их позже.

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

Примечание. Если у вас возникнут вопросы относительно кода столкновения и поведения бонусов, нажмите здесь.

С помощью этого кода вы можете зарегистрировать, какое усиление сталкивается с объектом игрока, и соответственно активировать его эффект. В моем коде 2D Space Shooter я использую коммуникацию сценария для доступа к функциям, которые находятся в сценарии игрока. Поскольку бонусы изменяют поведение игрока, все функции эффектов находятся в сценарии плеера, однако они активируются через модульную систему в зависимости от того, какое усиление было получено.

Но что, если у вас больше трех бонусов? По правде говоря, приведенный выше код, хотя и работает, уже и так беспорядок. Представьте, что вам нужно записать в него 10 бонусов! Вот почему в моей следующей статье я рассмотрю Операторы переключения!