Marble Golf
Część sekcji Fizyka i rozgrywka ścieżki Unity w Coddy. Lekcja 68 z 71.
Golf z kulką na małym polu golfowym. Kulka zaczyna na tee: celujesz nią za pomocą strzałek, przytrzymujesz Spację, aby zgromadzić moc, i puszczasz, aby oddać strzał. Toczy się, odbija od band i bloku pośrodku, zwalnia, a gdy jest już wystarczająco wolna, całkowicie się zatrzymuje. Dopiero wtedy możesz oddać kolejny strzał. Kulka, która powoli wtoczy się do dołka, wpada do niego; ta, która dotrze do niego zbyt szybko, przelatuje prosto nad nim. Im mniej uderzeń, tym lepiej.
Napisz dwa skrypty: Golf dla kulki i Hole dla dołka.
Wyzwanie
TrudnyNapisz kod kulki golfowej: celuj, ładuj, uderzaj.
- Obracaj
aimza pomocą surowej osi Horizontal z prędkościąaimSpeed; ustawpointerw pozycjitransform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward. - Gdy kulka spoczywa (prędkość jest mniejsza niż
stopSpeed), przytrzymanie klawisza spacji ładujepowerz szybkościąchargeRate, aż domaxPower; zwolnienie klawisza wyrzuca ją w kierunku celowania (Impulse), resetujepoweri zapisuje w logu"Stroke " + strokes. - W
FixedUpdate(), gdy kulka spoczywa, wyzeruj obie prędkości.
Naciśnij „Graj” i wykonaj uderzenie. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
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>();
}
// celuj strzałkami, ładuj klawiszem Space, uderz po jego zwolnieniu, zatrzymaj piłkę, gdy porusza się wolno
}
Wszystkie lekcje w sekcji Fizyka i rozgrywka
1Ciało sztywne
Grawitacja i masaPopychanie za pomocą AddForceSkok z impulsemFixedUpdate dla fizykiPrędkośćCiała kinematycznePowtórka: platforma startowa4Korutyny
WywoływanieInvokeRepeating i CancelInvokeTwoja pierwsza korutynaPętle w korutynachZatrzymywanie korutynPodsumowanie: odliczanie10Projekt: Ucieczka z areny
ArenaŁowcy2Kolizje
OnCollisionEnterW co uderzyłem?Rozbijanie przy zderzeniuStanie na podłożuOdbicie i tarcieKształty colliderówPodsumowanie: Zniszczalny mur5Projekt: Wyścig po monety
Tocząca się piłkaZbieranie monet3Wyzwalacze
Kolizje wyzwalająceOnTriggerEnterPrzedmioty do zebraniaSkrzynie zatrzymują resztęStrefy śmierciWejście i wyjściePodsumowanie: klucz i drzwiPoćwicz samodzielnie: Edytor online Unity