Menu
CoddyTech

Wciągnij flagę

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

localPosition można odczytywać i zmieniać w każdej klatce, tak jak position. Obiekt potomny, który ma wspinać się po swoim obiekcie nadrzędnym — kabina w górę wieży albo flaga w górę masztu — porusza się wzdłuż localPosition i porównuje swoją lokalną wysokość z górą, dzięki czemu działa niezależnie od położenia obiektu nadrzędnego:

if (transform.localPosition.y < 10)
{
    transform.localPosition += new Vector3(0, 2 * Time.deltaTime, 0);
}

Gdyby zamiast tego użyć position.y, położenie góry zmieniałoby się za każdym razem, gdy obiekt nadrzędny znajdowałby się wyżej lub niżej.

challenge icon

Wyzwanie

Średni

Podnieś flagę na maszt za pomocą strzałki w górę.

  1. W metodzie Update() napisz if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4).
  2. Wewnątrz dodaj new Vector3(0, climb * Time.deltaTime, 0) do transform.localPosition.

Naciśnij „Graj” i przytrzymaj strzałkę w górę: flaga wznosi się na szczyt masztu i zatrzymuje. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        transform.localPosition = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // Gdy strzałka w górę jest wciśnięta, wspinaj się, aż wysokość względem Ship wyniesie 4
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity