Menu
CoddyTech

Referencje w Inspectorze

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

Pole może przechowywać inny obiekt. Nadaj mu typ, taki jak Transform lub GameObject, a Inspektor wyświetli puste miejsce, które wypełnisz, przeciągając na nie obiekt z Hierarchii. Ten skrypt kamery podąża za obiektem przeciągniętym do player, pozostając 3 jednostki nad nim i 6 jednostek za nim:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

Puste miejsce wyświetla None, a pierwsza linia, która z niego korzysta, zgłasza przy każdej klatce: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Następna linia komunikatu mówi, co zrobić: You probably need to assign the player variable of the CameraFollow script in the inspector. Wskazuje pole i skrypt, więc wiesz, które miejsce wypełnić.

Niektóre skrypty powinny działać także wtedy, gdy miejsce jest puste. Unity sprawia, że puste miejsce porównuje się jako równe null, więc taki skrypt sprawdza to przed użyciem. Gdy otoczysz linię w Update() warunkiem if (player != null), kamera bez gracza pozostanie na swoim miejscu zamiast zgłaszać wyjątek.

challenge icon

Wyzwanie

Średni

Wyślij każdego strażnika na posterunek wskazany przez Inspector.

  1. Dodaj pole public Transform post;. Pole Guard1 zawiera Post1; pole Guard2 jest puste.
  2. W Update(), gdy post == null, wykonaj return;, aby strażnik bez posterunku pozostał na miejscu.
  3. Następnie przesuń go za pomocą Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).

Naciśnij „Graj”: Guard1 idzie na swój posterunek, a Guard2 czeka. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: Transform, do którego zmierza ten strażnik, ustawiany w Inspector
    public float speed = 2f;

    void Update()
    {
        // Idź do post z prędkością speed. Strażnik z pustym polem post pozostaje na miejscu.
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity