Menu
CoddyTech

Plansza

Lekcja 1 z 14 w kursie Gra w Unity: Wąż 3D w Coddy.

W tym kursie zbudujesz Snake'a w 3D: węża z sześcianów na planszy 15 na 15, widzianej z góry. Porusza się o jedno pole naraz, skręca za pomocą strzałek lub klawiszy WASD, je, rośnie i ginie po uderzeniu w ścianę lub własny ogon. Snake steruje głową; GameManager pozostaje pusty, dopóki nie pojawi się jedzenie. Przycisk „Graj” uruchamia grę, a przycisk „Sprawdź” ocenia kod.

Pola mają szerokość jednej jednostki i znajdują się na liczbach całkowitych od -7 do 7. Wąż nigdy się nie ślizga: przeskakuje o całe pole podczas tyknięcia, czyli stałego rytmu, i stoi nieruchomo między tyknięciami. Rytm wyznacza timer: dodawaj Time.deltaTime w każdej klatce, a gdy osiągnie wartość rytmu, wykonaj ruch i odejmij od niego tę wartość:

timer += Time.deltaTime;
if (timer >= 0.5f)
{
    timer -= 0.5f;
    Step();
}

Odejmowanie wartości rytmu zamiast ustawiania timera na 0 pozwala zachować część klatki, która go przekroczyła, dzięki czemu rytm nie będzie się opóźniać. Użyj pola tick, a nie liczby.

challenge icon

Wyzwanie

Łatwy

Spraw, by głowa przesuwała się o jedną komórkę w każdym takcie.

  1. W Snake dodaj private float timer;
  2. W Update() dodawaj Time.deltaTime do timer; gdy timer >= tick, odejmij od niego tick i wywołaj Step().
  3. W Step() dodaj direction do transform.position.

Naciśnij „Graj”: głowa przesuwa się w prawo, komórka po komórce, na razie poza planszę. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // sekundy między dwoma krokami
    private Vector3 direction = Vector3.right;

    void Update()
    {
        // Co tick sekund wykonaj jeden Step()
    }

    void Step()
    {
        // Przesuń głowę o jedną komórkę w kierunku direction
    }
}

Wszystkie lekcje w sekcji Gra w Unity: Wąż 3D

Poćwicz samodzielnie: Edytor online Unity