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.
Desafío
FácilHaz que funcionen los tres botones del puente levadizo en Drawbridge.cs.
- La fila On Click () de cada botón llama a
Raise,LoweroToggleLamp. Cambia el nombre deLowerBridgeaLower. - Escribe
public void Raise():bridge.localRotationgira 70 grados alrededor del eje x, ystatusTextmuestraBridge: up. - Escribe
public void ToggleLamp(): enciendewarningLampcuando 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
1Texto en pantalla
Canvas y textoMuestra la puntuaciónDa formato a los númerosUn temporizador de cuenta regresivaRepaso: velocímetro2Botones y pantallas
Botones y onClickLambdasConectar en el InspectorPaneles activados y desactivadosBarras de saludRepaso: tienda de mejoras5Guardar con PlayerPrefs
Guardar un númeroCargar con un valor predeterminadoPuntuación más altaGuardar ajustesRepaso: monedas en el banco3El gestor del juego
Un solo script ejecuta el juegoEl SingletonEstados del juegoActivar el estadoRepaso: gestor de rondas6Proyecto: Corredor sin fin
Tres carrilesObstáculos por delante9El nuevo sistema de entrada
Dos sistemas de entradaTeclado y ratónPulsado en este fotogramaAcciones de entradaRepaso: cambio de entradaPractica por tu cuenta: Playground de Unity