Гольф с шариками
Часть раздела Физика и игровой процесс путешествия по Unity на Coddy. Урок 68 из 71.
Гольф с шариком на небольшом зелёном поле. Шарик начинает на площадке для удара: целься в него с помощью стрелок, удерживай Space, чтобы набрать силу, и отпусти, чтобы ударить. Он катится, отскакивает от бортиков и блока посередине, замедляется, а когда становится достаточно медленным, полностью останавливается. Только после этого можно ударить снова. Шарик, который медленно вкатывается в лунку, падает в неё; тот, который прибывает слишком быстро, прокатывается прямо над ней. Чем меньше ударов, тем лучше.
Напиши два скрипта: Golf для шарика и Hole для лунки.
Задание
СложноНапиши код для игры в гольф: прицеливайся, набирай силу удара и бей.
- Поворачивай
aimс помощью необработанной оси Horizontal со скоростьюaimSpeed; установиpointerв точкуtransform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward. - В состоянии покоя (скорость ниже
stopSpeed) удерживание Space увеличиваетpowerна величинуchargeRateдо значенияmaxPower; при отпускании мяч получает импульс в направлении прицеливания,powerсбрасывается, а в журнал записывается"Stroke " + strokes. - В
FixedUpdate(), когда мяч в состоянии покоя, обнули обе скорости.
Нажми «Играть» и сделай удар. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Golf : MonoBehaviour
{
public int strokes = 0;
[SerializeField] private Transform pointer;
[SerializeField] private float aimSpeed = 90f;
[SerializeField] private float chargeRate = 4f;
[SerializeField] private float maxPower = 6f;
[SerializeField] private float stopSpeed = 0.3f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
// Прицеливайся стрелками, заряжай удар клавишей Space, бей при отпускании, останавливайся при низкой скорости
}
Все уроки раздела Физика и игровой процесс
1Твёрдое тело
Гравитация и массаТолкаем с помощью AddForceПрыжок с импульсомFixedUpdate для физикиСкоростьКинематические телаПовторение: пусковая площадка4Корутины
InvokeInvokeRepeating, CancelInvokeВаша первая корутинаЦиклы в корутинахОстановка корутинПовторение: обратный отсчёт10Проект: Побег с арены
АренаОхотники2Столкновения
OnCollisionEnterВо что я попал?Разрушение при столкновенииСтояние на землеОтскок и трениеФормы коллайдеровПовторение: разрушаемая стена5Проект: Монетная гонка
Катящийся шарСобираем монетыПотренируйтесь самостоятельно: Песочница Unity