Menu
CoddyTech

Lądowanie albo pudło

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

To wyzwanie kończy grę z wieżą i pierwszą sekcję kursu: dźwig, spadający blok i test lądowania z użyciem Mathf.Abs.

challenge icon

Wyzwanie

Trudny

Spraw, aby każdy blok wylądował na stosie albo spadł obok niego.

  1. Gdy spadający blok znajdzie się na wysokości y równej top + 1 i w odległości mniejszej niż 1 od współrzędnej x top, ustaw jego współrzędną y dokładnie na tej wysokości, przypisz go do top, wyczyść falling i zapisz w logu "Stack: " + count.
  2. W przeciwnym razie, gdy znajdzie się poniżej y = -3, zniszcz go, wyczyść falling i zapisz w logu Missed!.

Naciśnij „Graj” i układaj bloki w stos: każde lądowanie zapisuje jego wysokość w logu. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    private float direction = 1f;
    private Transform falling;
    private int stack;

    void Update()
    {
        transform.position += new Vector3(direction * craneSpeed * Time.deltaTime, 0f, 0f);
        if (transform.position.x > craneEdge) direction = -1f;
        if (transform.position.x < -craneEdge) direction = 1f;

        bool drop = Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0);
        if (drop && falling == null)
        {
            Vector3 spot = new Vector3(transform.position.x, transform.position.y - 1f, 0f);
            falling = Instantiate(blockPrefab, spot, Quaternion.identity).transform;
        }

        if (falling != null)
        {
            falling.position += Vector3.down * fallSpeed * Time.deltaTime;
            // Lądowanie na stosie: temat następnej lekcji.
        }
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity