Uso de botones en la interfaz de usuario de Unity

Actualización de la página :
Fecha de creación de la página :

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:

StartEl 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.