Podłączanie w Inspectorze
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 8 z 56.
Przycisk można też podłączyć w Inspectorze, bez używania AddListener. Lista On Click () przycisku jest początkowo pusta. Kliknięcie + dodaje wiersz; przeciągnij do pola obiektu wiersza obiekt zawierający skrypt, a lista rozwijana funkcji wyświetli komponenty tego obiektu wraz z ich publicznymi metodami. Wybierz Jukebox > NextTrack, a każde kliknięcie wywoła tę metodę:
public class Jukebox : MonoBehaviour
{
public string[] tracks;
private int current;
public void NextTrack()
{
current = (current + 1) % tracks.Length;
Debug.Log("Now playing: " + tracks[current]);
}
}Lista rozwijana wyświetla metody, które są public, zwracają void i nie przyjmują żadnego parametru albo przyjmują jeden parametr typu int, float, string, bool lub Object, którego wartość ustawiasz w wierszu. Prywatna metoda NextTrack nie jest wyświetlana, więc nie można jej wybrać. Wiersz przechowuje metodę pod jej nazwą: zmień nazwę NextTrack na SkipTrack, a wiersz wyświetli <Missing Jukebox.NextTrack> i kliknięcia nie będą nic robić — w Console nie pojawi się żaden błąd.
Wiersze w Inspectorze sprawdzają się przyciskach umieszczonych w scenie: każda osoba w zespole może zobaczyć i zmienić, co wywołuje przycisk, bez otwierania skryptu. AddListener w kodzie sprawdza się przy przyciskach tworzonych podczas działania gry oraz przy wywołaniach przekazujących wartość ze zmiennej; kompilator wykryje tam zmianę nazwy metody. Nasłuchiwacze dodane z kodu nigdy nie pojawiają się na liście On Click (), więc przycisk podłączony na oba sposoby wywołuje obie metody.
Wyzwanie
ŁatwyMost zwodzony zamku ma trzy przyciski, podłączone w Inspectorze do skryptu Drawbridge na obiekcie BridgeControl. Żaden z nich jeszcze nie działa. Wybierz RaiseButton, LowerButton i LampButton w Hierarchy i przeczytaj wiersz każdego zdarzenia On Click (): wskazuje on metodę wywoływaną po kliknięciu. Spraw, by wszystkie trzy działały, zmieniając wyłącznie Drawbridge.cs:
- Jedna z metod jest już napisana pod inną nazwą. Zmień jej nazwę na tę, która widnieje w jej wierszu.
- Podniesienie ustawia
bridgepod kątem 70 stopni wokół osi x (jegolocalRotation) i wyświetlaBridge: upwstatusText. - Przycisk lampy włącza
warningLamp, gdy jest wyłączona, i wyłącza ją, gdy jest włączona.
Naciśnij Play, wypróbuj każdy przycisk, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
using TMPro;
public class Drawbridge : MonoBehaviour
{
public Transform bridge;
public TMP_Text statusText;
public GameObject warningLamp;
public void LowerBridge()
{
bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
statusText.text = "Bridge: down";
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku