Poznaj Unity 2022

Why take this course?
Ćwiczenie z listy wykładowej dotyczy zastosowania skryptów do sterowania ruchem sprite'a w Unity. Zadanie to ma na celu nauczić Cię, jak programować interaktywne elementy w gry 2D, używając języka C# w silniku Unity. Oto kroki, które musisz wykonać, aby zrealizować to zadanie:
-
Importowanie sprite'a gracza: Zakładam, że już masz gotowy sprite gracza, który chcesz poruszyć. Jeśli nie, możesz pobrać gotowy obraz z internetu lub stworzyć własny. Importuj go do Unity jako prefab.
-
Konfiguracja sprite'a: Upewnij się, że sprite gracza jest poprawnie skonfigurowany (ma rzeczywistą rotację, skalę itp.). Możesz to zrobić w edytorze Unity, na kartce "Sprite Renderer".
-
Dodanie skryptu: Utwórz nowy skrypt C# w Unity i nazwij go np.
PlayerMovement
. Ten skrypt będzie odpowiedzialny za sterowanie ruchem sprite'a gracza. -
Konfiguracja Input Systemu: Wejdź do panelu "Input Manager" w Unity, aby zdefiniować klawisze lub kontrolery, które będą odpowiedzialne za różne kierunki ruchu gracza.
-
Programowanie ruchesnego skryptu: W skrypcie
PlayerMovement
zaimportuj klasyy potrzebne do pracy z Input Systemem, np.InputManager
. Następnie w metodzieUpdate
lub w odpowiednich triggerach inputu (np.Horizontal
,Vertical
) wykonaj kody, którymi będziesz poruszać sprite'a zgodnie z wezwanymi klawiszami lub sygnałami z kontrolera.Przykład kodu w skrypcie
PlayerMovement
:public class PlayerMovement : MonoBehaviour { public float speed = 5f; private Rigidbody2D rb2d; // Komponent Rigidbody2D jest automatycznie dodawany, jeśli sprite ma kolizję void Start() { rb2d = GetComponent<Rigidbody2D>(); } void Update() { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); Vector2 movement = new Vector2(moveHorizontal, moveVertical); rb2d.AddForce(movement * speed); }
-
Testowy: Po zastoweniu skryptu
PlayerMovement
na prefab gracza i akcji Unity (Play), przetuj grę, aby zobaczy ruch sprite'a gracza w czasie rzeczywym. -
Testowanie: Przesuj klawisze lub użycia kontrolera, aby sprawdzić, czy skrypt działa poprawnie.
-
Optymizacja: W zale od kodu możesz zopatrz dalszym optymalizacjom, na przykład dodajączy szybszy skrypt dołągoty lub użyć komponentu
Collider2D
w celu sterowania ruchem sprite'a zamiastRigidbody2D
, jeśli Twoja scena wymagającym stopniu wymaganym stanie wymowych warunkach. Po zrealizowaniu tego zadania, będz mógć sterować ruch sprite'a gracza za pomocą klawiszy lub użycia kontrolera, co umożliwi Cię oucie (czyli Twą Grę) w Unity. Pamię o dniach i miesiące, możesz również zastowanie skryptów na inne (np. skrypt do otwierki bramy)). Oto konkretny kod, który będzie umożliwał ruch sprite'a gracza w Unity:
public class PlayerMovement : MonoBehaviour
{
public float speed = 10f; // Szybowość ruchem
private Rigidbody2D rb2d;
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
}
void Update()
{
float horizontalMovement = Input.GetAxis("Horizontal");
float horizontalSpeed = horizontalMovement * speed;
float verticalMovement = Input.GetAxis("Vertical");
float verticalSpeed = verticalMovement * speed;
Vector2 movement = new Vector2(horizontalSpeed, verticalSpeed);
rb2d.AddForce(movement);
}
}
W powyższym kodach, Input.GetAxis("Horizontal")
i Input.GetAxis("Vertical")
zwracą wartości między -1 a +1, gdzie -1 oznacza ruch w lewym kierunku, a +1 w prawym kierunku. Możesz dostosować te wartości, aby zwięcić lub zmnieś szybowość ruchem, zdefiniowaną w variabli speed
. Możesz również stworzyć osi (np. movement.x
dla pionu X i movement.y
dla pionu Y), aby ruchować sprite'a gracza zamiast poruszać go w pełej mierze (Vector2
).
Course Gallery




Loading charts...