Menu
CoddyTech

Łapacz

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 50 z 85.

W tym rozdziale, w trakcie kolejnych lekcji, zbudujesz małą grę „Catch the Star”, dodając po jednej funkcji na lekcję: gwiazda spada, a ty przesuwasz pod nią łapacz w lewo i w prawo, każde złapanie daje punkty i sprawia, że następna gwiazda spada szybciej, a trzy nieudane próby kończą grę. Wszystko znajduje się w jednym skrypcie, Catcher, przypisanym do łapacza. Pierwszą funkcją jest ruch: łapacz przesuwa się za pomocą klawiszy strzałek i nigdy nie opuszcza podłogi.

Za utrzymanie liczby w określonych granicach odpowiada Mathf.Clamp(value, min, max). Zwraca min, gdy wartość jest mniejsza niż min, max, gdy jest większa niż max, a w pozostałych przypadkach samą wartość. Ta kamera podąża za graczem w górę wieży, ale jej wysokość pozostaje w przedziale od 2 do 12:

[SerializeField] private Transform player;

void Update()
{
    float y = Mathf.Clamp(player.position.y, 2f, 12f);
    transform.position = new Vector3(transform.position.x, y, transform.position.z);
}

Clamp zwraca nową liczbę i sam z siebie niczego nie zmienia, więc przypisz wynik. Zastosuj Clamp po wszystkich zmianach w danej klatce, a przed ponownym przypisaniem pozycji, a żadna klatka nie pokaże obiektu poza wyznaczonymi granicami.

challenge icon

Wyzwanie

Średni

Nadaj łapaczowi, niebieskiemu paskowi, ruch.

  1. W Update() skopiuj transform.position.x do float x, a następnie dodawaj lub odejmuj speed * Time.deltaTime w zależności od przytrzymanej strzałki.
  2. Utrzymuj łapacz o szerokości 2 jednostek na podłodze (x od -5 do 5): x = Mathf.Clamp(x, -4f, 4f);.
  3. Zapisz x z powrotem w transform.position, zachowując y i z.

Naciśnij Graj i przytrzymaj strzałki: łapacz zatrzymuje się na krawędziach. Następnie naciśnij Sprawdź.

Spróbuj swoich sił

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;

    void Update()
    {
        // Strzałki: przesuwaj się wzdłuż osi x z prędkością speed jednostek na sekundę.
        // Utrzymuj cały chwytak na podłodze (x od -5 do 5, chwytak ma szerokość 2).
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity