Menu
CoddyTech

Podłączanie w Inspectorze

Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 8 z 60.

Przycisk można też podłączyć w Inspectorze, bez użycia AddListener. Lista On Click () przycisku jest początkowo pusta. Kliknięcie + dodaje wiersz; przeciągnij obiekt ze skryptem do pola obiektu w wierszu, a lista rozwijana funkcji pokaże 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 pokazuje metody, które są public, zwracają void i nie przyjmują parametrów albo przyjmują jeden parametr typu int, float, string, bool lub Object, którego wartość ustawiasz w wierszu. Prywatna metoda NextTrack nie jest widoczna na liście, więc nie można jej wybrać. Wiersz przechowuje metodę pod jej nazwą: zmień nazwę NextTrack na SkipTrack, a wiersz pokaże <Missing Jukebox.NextTrack>; kliknięcia nic nie zrobią, a w Console nie pojawi się żaden błąd.

Wiersze w Inspectorze sprawdzają się w przypadku przycisków umieszczonych w scenie: każda osoba z zespołu może zobaczyć i zmienić, co wywołuje przycisk, bez otwierania skryptu. AddListener w kodzie sprawdza się w przypadku przycisków tworzonych podczas działania gry oraz wywołań przekazujących wartość ze zmiennej; kompilator wykryje tam zmianę nazwy metody. Nasłuchiwacze dodane z poziomu kodu nigdy nie pojawiają się na liście On Click (), więc przycisk podłączony na oba sposoby wywoła oba.

challenge icon

Wyzwanie

Łatwy

Uruchom trzy przyciski mostu zwodzonego w pliku Drawbridge.cs.

  1. Wiersz On Click () każdego przycisku wywołuje Raise, Lower lub ToggleLamp. Zmień nazwę LowerBridge na Lower.
  2. Napisz public void Raise(): bridge.localRotation obraca się o 70 stopni wokół osi x, a statusText wyświetla Bridge: up.
  3. Napisz public void ToggleLamp(): włącza warningLamp, gdy jest wyłączona, i wyłącza ją, gdy jest włączona.

Naciśnij „Graj”: każdy przycisk działa zgodnie z przeznaczeniem. Następnie naciśnij „Sprawdź”.

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";
    }
}

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier

Poćwicz samodzielnie: Edytor online Unity