Пушечный тир
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 66 из 71.
На одном конце стрельбища стоит пушка, а три мишени на разном расстоянии скользят из стороны в сторону. Наклоняй ствол вверх и вниз, чтобы достичь каждой дистанции, и выбирай время для выстрела так, чтобы мишень пересекала линию огня. Шар, попавший в мишень, выбивает её и расходуется; всё остальное, что заденет мишень, оставляет её нетронутой. Мишени — кинематические тела, поэтому попадания никогда не толкают их, а в пушке пять шаров.
Напиши два скрипта: Cannon для ствола и Target для каждой мишени.
Задание
СложноНапиши пушку: наведи её, затем выстрели пятью ядрами.
- В
Update()прибавьInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimeкangle, ограничь его диапазоном от 10 до 60 и задайtransform.rotation = Quaternion.Euler(-angle, 0f, 0f);. - При нажатии пробела, если
balls > 0, создайballPrefabв точкеtransform.position + transform.forwardи вызовиAddForce(transform.forward * power, ForceMode.Impulse). - Уменьши
ballsна 1 и выведи в лог"Balls left: " + balls.
Нажми «Играть» и стреляй. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Cannon : MonoBehaviour
{
[SerializeField] private Rigidbody ballPrefab;
[SerializeField] private float angle = 30f;
[SerializeField] private float turnSpeed = 40f;
[SerializeField] private float power = 30f;
[SerializeField] private int balls = 5;
void Update()
{
// Прицеливайтесь стрелками вверх и вниз, стреляйте с помощью Space
}
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка4Корутины
InvokeInvokeRepeating, CancelInvokeВаша первая корутинаЦиклы в корутинахОстановка корутинПовторение: обратный отсчёт10Проект: Побег с арены
АренаОхотники2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Монетная гонка
Катящийся шарСобираем монетыПотренируйтесь самостоятельно: Песочница Unity