Цель:создать движение врага по типу синусоидальной волны с помощью Mathf.Sin.

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

Синусоидальная волна изменяется со временем от 1 до -1 через нулевую точку, являющуюся центральной точкой.

Мы можем использовать это в коде, чтобы наши враги двигались точно таким же образом.

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

Далее мы реализуем нашу волновую функцию Sin. Важно, чтобы мы поместили функцию Mathf.Sin в наш метод Start, чтобы в методе update она знать, в какой части волны греха он начался, чтобы он мог продолжаться в этой части волны в обновлении.

Волна Sin изменяется от 0 до 1 в зависимости от Time.time. Я хочу, чтобы он перемещался со случайной величиной, поэтому я умножаю Time.time на свою переменную _random.

Вы также можете взять начальный position.y (_startYPos) и добавить его в Mathf.Sin, чтобы он создавал волну вдоль эту точку как центральную точку.

Полный код метода Start выглядит так.

Теперь в методе Update мы включим наш Mathf.Sin из метода Start и поместим его в Update.

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

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

Эта игра полностью воспроизводится на itch.io. Я обновляю его как можно чаще. Дайте ему играть и дайте мне знать, что вы думаете!