Menu
CoddyTech

Conectar en el Inspector

Parte de la sección Creación de juegos reales del Journey de Unity de Coddy. Lección 8 de 60.

También se puede configurar un botón en el Inspector, sin usar AddListener. La lista Al hacer clic () del botón empieza vacía. El signo + añade una fila; arrastra a la fila, en el espacio para el objeto, el objeto que contiene el script, y el menú desplegable de funciones muestra los componentes de ese objeto, cada uno con sus métodos públicos. Elige Jukebox > NextTrack, y cada clic llama a este método:

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

El menú desplegable muestra los métodos que son public, devuelven void y no reciben ningún parámetro o reciben uno de tipo int, float, string, bool u Object, cuyo valor se establece en la fila. Un método privado NextTrack no aparece en la lista, así que no se puede elegir. La fila guarda el método por su nombre: cambia el nombre de NextTrack a SkipTrack y la fila mostrará <Missing Jukebox.NextTrack>, y los clics no harán nada, sin que aparezca ningún error en la consola.

Las filas del Inspector son adecuadas para los botones colocados en la escena: cualquier integrante del equipo puede ver y cambiar lo que llama un botón sin abrir un script. AddListener en el código es adecuado para los botones que se crean mientras se ejecuta el juego y para las llamadas que pasan un valor desde una variable; además, el compilador detecta si se cambia el nombre de un método en ese caso. Los oyentes añadidos desde el código nunca aparecen en la lista Al hacer clic (), así que un botón configurado de ambas maneras llama a ambos.

challenge icon

Desafío

Fácil

Haz que funcionen los tres botones del puente levadizo en Drawbridge.cs.

  1. La fila On Click () de cada botón llama a Raise, Lower o ToggleLamp. Cambia el nombre de LowerBridge a Lower.
  2. Escribe public void Raise(): bridge.localRotation gira 70 grados alrededor del eje x, y statusText muestra Bridge: up.
  3. Escribe public void ToggleLamp(): enciende warningLamp cuando está apagada y la apaga cuando está encendida.

Pulsa «Jugar»: cada botón cumple su función. Después, pulsa «Comprobar».

Pruébalo tú mismo

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

Todas las lecciones de Creación de juegos reales

Practica por tu cuenta: Playground de Unity