Uso de botones en la interfaz de usuario de Unity
Entorno de verificación
- Windows
-
- Windows 11
- Unity Editor
-
- 2020.3.25f1
Requisitos previos para esta sugerencia
Los siguientes ajustes se han realizado de antemano como requisito previo para la explicación de estos consejos.
Al principio
Un botón se puede usar como un objeto en el que el usuario hace clic por sí mismo, o se puede usar para tomar una decisión, como "sí" o "no". Si desea ser un poco más elaborado, puede usar un botón como objeto para seleccionar un elemento de la lista, como un menú.
Además de esto, también se puede usar con fines de depuración y al hacer clic en un botón para cambiar el estado arbitrariamente.
Haga clic en el botón para cambiar el texto
Si simplemente hace clic en el botón, realizará algún procesamiento. Esta vez, cada vez que haga clic en el botón, el número de texto aumentará en 1.
Ubicación y configuración de la interfaz de usuario
Agregue texto y botones de la jerarquía a la vista.
Puedes colocarlo en cualquier lugar siempre y cuando lo pongas en un lugar donde puedas verlo. Dado que es difícil de ver en el estado inicial, se establecen configuraciones como "color de texto blanco", "cambiar tamaño", "aumentar el tamaño de la fuente", etc. El contenido del texto se cambiará automáticamente más adelante, por lo que puede dejarlo como "Nuevo texto".
La configuración de caracteres del botón se divide en "Botón" y "Texto", así que seleccione Texto y configúrelo.
Adición de scripts
Seleccione la carpeta Escenas del proyecto, haga clic con el botón derecho en un espacio vacío y seleccione Script de C# para agregarlo. Originalmente, es mejor crear el script en una carpeta separada, pero lo omitiré con el fin de verificar la operación.
El nombre del archivo debe ser fácil de entender. Introduzca tantos caracteres alfanuméricos como sea posible.
ButtonClick
En este caso, se establece en .
Una vez creado, haga doble clic en el script de C# para abrir el editor de scripts. Si el editor de scripts es Visual Studio, debería ver algo como esto:
Start
El método no es necesario esta vez, así que elimínelo, Update
vuelva a escribirlo y guárdelo de la siguiente manera.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 追加
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
public void OnClick()
{
}
}
La sintaxis de C# no es el tema principal de este consejo, por lo que no lo explicaré. Por favor, estudia por tu cuenta. Solo se analizan las descripciones específicas de Unity.
MonoBehaviour
Los campos escritos en las clases que heredan de se podrán establecer en el Editor de Unity.
CountText
Aquí, definimos un objeto de texto llamado
Para que se muestre, debe publicarse public
con .
SerializeField
Sin embargo, si agrega el atributo, public
podrá mostrarlo en el editor con una accesibilidad distinta a .
Esta es una mejor descripción si no desea acceder a ella desde otras clases tanto como sea posible, excepto con el propósito de configurarla en el editor.
OnClick
Se proporcionan métodos para describir qué hacer cuando se hace clic en un botón.
public
Esto debe definirse en .
Adjuntar desde el Editor de Unity
Regrese al Editor de Unity y seleccione de la jerarquía EventSystem
.
EventSystem
Aparecerá el inspector, así que suelta el script de C# que acabas de crear en el área "Agregar componente" a continuación.
El script ya está listo para funcionar.
De hecho, este script se puede adjuntar a cualquier objeto y Button
debe adjuntarse al objeto.
En este consejo, agregaremos para que sea uniformemente fácil de entender EventSystem
.
Button
Por supuesto, no hay ningún problema en adjuntarlo a . Sin embargo, es mejor no adjuntarlo a un objeto completamente no relacionado, ya que causará confusión.
Si observa el script que ha agregado, puede ver que se muestra el elemento "Contar texto".
Una vez que haya publicado un campo de esta manera, podrá establecer el valor desde el Editor de Unity.
Queremos acceder al objeto de texto cuando hacemos clic en el botón, así que arrastre desde la jerarquía Text
y Count Text
suéltelo en .
Esto le permitirá acceder a él desde su script en cualquier momento.
A continuación, seleccione de la jerarquía Button
y haga clic en + en Al hacer clic en el Inspector Button
.
A continuación, se añadirá un elemento.
En el elemento inferior derecho, he soltado un script adjunto de la EventSystem
jerarquía.
Dado que necesitamos poner el objeto al que se adjunta el script aquí,
Si va a adjuntar un script a un botón, debe incluir un botón.
Si hace clic en "Sin función", se mostrará el script adjunto, así que ButtonClick
seleccione .
Seleccione el método que creó OnClick
en él.
Ahora, al hacer clic en el botón, se llama al OnClick
método.
Registro de salida con solo hacer clic en un botón
Generaré el registro para confirmar que funciona. Puedes comprobar que funciona con solo escribir una línea, y te será muy útil para futuras depuraciones, por lo que es mejor recordarlo.
ButtonClick
Abra el script y OnClick
agregue lo siguiente a .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
Una vez que hayas ingresado y guardado, ejecuta el juego y haz clic en el botón.
Cada vez que haga clic en él, aparecerá un mensaje en la pestaña de la consola. Ahora puedes ver que está funcionando.
Cambiar texto con un clic de botón
Ahora que puede mover los botones, se ha logrado el propósito de este consejo. Ahora que he colocado el objeto de texto, quiero cambiar el texto cada vez que hago clic en el botón.
Vuelva a escribir el script de la siguiente manera.
// 省略
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
<summary>クリックカウント。</summary>
private int _counter = 0;
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
// カウントを増やす
_counter++;
// カウントした数を表示する
CountText.text = _counter.ToString();
}
}
El contenido es simplemente incrementar el recuento en 1 cada vez que haga clic y establezca el número en el objeto de texto.
Ejecuta el juego y asegúrate de que el número aumente con cada clic.