Связи в Inspector
Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 8 из 60.
Кнопку также можно настроить в Инспекторе, вообще не используя AddListener. Список On Click () у кнопки изначально пуст. Нажмите +, чтобы добавить строку; перетащите в слот объекта этой строки объект со скриптом, и в раскрывающемся списке функций появятся компоненты этого объекта, каждый со своими открытыми методами. Выберите Jukebox > NextTrack, и каждый щелчок будет вызывать этот метод:
public class Jukebox : MonoBehaviour
{
public string[] tracks;
private int current;
public void NextTrack()
{
current = (current + 1) % tracks.Length;
Debug.Log("Now playing: " + tracks[current]);
}
}В раскрывающемся списке отображаются методы, которые имеют модификатор public, возвращают void и не принимают параметров либо принимают один параметр типа int, float, string, bool или Object, значение которого задаётся в строке. Метод private NextTrack в списке не отображается, поэтому его нельзя выбрать. В строке метод сохраняется по имени: переименуйте NextTrack в SkipTrack — и в строке появится <Missing Jukebox.NextTrack>, а щелчки ничего не будут делать; в Console ошибки не появится.
Строки в Инспекторе подходят для кнопок, размещённых на сцене: любой член команды может увидеть и изменить, что вызывает кнопка, не открывая скрипт. AddListener в коде подходит для кнопок, создаваемых во время игры, и для вызовов, передающих значение из переменной; там компилятор обнаружит переименование метода. Слушатели, добавленные из кода, никогда не отображаются в списке On Click (), поэтому кнопка, настроенная обоими способами, вызывает оба метода.
Задание
ЛегкоСделай так, чтобы три кнопки подъемного моста работали в Drawbridge.cs.
- В строке «При нажатии ()» каждой кнопки вызывается
Raise,LowerилиToggleLamp. ПереименуйLowerBridgeвLower. - Напиши
public void Raise():bridge.localRotationповорачивается на 70 градусов вокруг оси x, аstatusTextотображаетBridge: up. - Напиши
public void ToggleLamp(): метод включаетwarningLamp, если она выключена, и выключает, если она включена.
Нажми «Играть»: каждая кнопка выполняет свою задачу. Затем нажми «Проверить».
Попробуйте сами
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";
}
}
Все уроки раздела Создание настоящих игр
1Текст на экране
Холст и текстПокажем счётФорматирование чиселТаймер обратного отсчётаПовторение: спидометр4Сцены и уровни
Загрузить сценуПерезапустить уровеньСледующий уровеньСохранить между сценамиПовторение: выбор уровня2Кнопки и экраны
Кнопки и onClickЛямбдыСвязи в InspectorВключение и выключение панелейШкалы здоровьяПовторение: магазин улучшений5Сохранение с помощью PlayerPrefs
Сохранение числаЗагрузка со значением по умолчаниюРекордСохранение настроекПовторение: монеты в банкеПотренируйтесь самостоятельно: Песочница Unity