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.
Wyzwanie
TrudnySpraw, aby każdy blok wylądował na stosie albo spadł obok niego.
- 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 xtop, ustaw jego współrzędną y dokładnie na tej wysokości, przypisz go dotop, wyczyśćfallingi zapisz w logu"Stack: " + count. - W przeciwnym razie, gdy znajdzie się poniżej y =
-3, zniszcz go, wyczyśćfallingi zapisz w loguMissed!.
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.
}
}
}
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
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światła11Prefaby i tworzenie obiektów
Prefaby i InstantiateTworzenie obiektów według timeraTworzenie obiektów w siatceListy obiektówCofnij najnowszyNiszczenieLosowe tworzenie obiektówPowtórka: fajerwerki14Wyzwania końcowe
Magnes na monetyPrzechodzenie przez jezdnięRuch drogowyBudowniczy wieżyLądowanie albo pudłoPoćwicz samodzielnie: Edytor online Unity