Trzy tory
Lekcja 1 z 20 w kursie Gra w Unity: Podniebne tory w Coddy.
W tym kursie zbudujesz całą grę, po jednej funkcji na lekcję. Biegacz pędzi drogą wysoko wśród chmur. Pojawiają się przed nim bariery, poprzeczki i ściany, wzdłuż pasów leżą monety, a im dłużej przetrwasz, tym szybciej biegnie droga.
Projekt ma już cztery skrypty: Runner przypisany do gracza, Road, GameManager i Coin. Na razie większość z nich jest pusta i będzie uzupełniana z lekcji na lekcję. Jest też piąty skrypt, CameraFit, przypisany do kamery: poszerza widok na wysokim ekranie telefonu, tak aby zmieściły się wszystkie trzy pasy, i nie trzeba go zmieniać.
Biegacz nigdy nie porusza się do przodu. Przemieszcza się tylko między trzema pasami: lewym, środkowym i prawym. Zapisz pas jako liczbę całkowitą -1, 0 lub 1, a następnie oblicz jego położenie na osi x:
float targetX = lane * laneWidth;Biegacz ma komponent CharacterController, więc porusza się za pomocą controller.Move(motion): Move przyjmuje odległość do pokonania w tej klatce, a nie docelowe położenie. Aby znaleźć się w targetX, przesuń go o różnicę między tą wartością a jego obecnym położeniem:
float x = targetX;
Vector3 move = new Vector3(x - transform.position.x, 0f, 0f);
controller.Move(move);Mathf.Max(-1, lane - 1) zwraca lane - 1, ale nigdy wartość mniejszą niż -1, więc nie można wybrać pasa po lewej stronie lewego pasa.
Wyzwanie
Łatwy- W metodzie
Runner.Update, gdy zostanie naciśnięty klawisz A lub strzałka w lewo (Input.GetKeyDown), ustawlane = Mathf.Max(-1, lane - 1). - Gdy zostanie naciśnięty klawisz D lub strzałka w prawo, ustaw
lane = Mathf.Min(1, lane + 1). - Następnie oblicz
targetXi przesuń tam biegacza za pomocącontroller.Move, jak wyżej. - Naciśnij „Graj” i wypróbuj klawisze A i D.
Spróbuj swoich sił
using UnityEngine;
public class Runner : MonoBehaviour
{
public float laneWidth = 2.5f;
public int lane;
private CharacterController controller;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
// zmień tutaj pas ruchu
}
}
Wszystkie lekcje w sekcji Gra w Unity: Podniebne tory
Poćwicz samodzielnie: Edytor online Unity