En aquest tema, aprendrem com gestionar esdeveniments d'interfície d'usuari (UI) en Unity. Els esdeveniments de UI són fonamentals per crear una experiència interactiva i dinàmica per als usuaris. Explorarem com detectar i respondre a diferents tipus d'esdeveniments com clics de botons, canvis en sliders, i molt més.

Conceptes Clau

  1. Esdeveniments de UI: Accions que l'usuari realitza sobre elements de la interfície, com clics, moviments del ratolí, i canvis de valor.
  2. Event System: El sistema de Unity que gestiona els esdeveniments de UI.
  3. Components d'UI: Elements com botons, sliders, i altres que poden generar esdeveniments.

Components Necessaris

  • Canvas: El contenidor principal per a tots els elements de UI.
  • Event System: Necessari per gestionar els esdeveniments de UI.
  • Elements de UI: Botons, sliders, etc.

Creant un Projecte de UI Bàsic

Pas 1: Configuració del Canvas i Event System

  1. Crear un Canvas:

    • Aneu a GameObject > UI > Canvas.
    • Això crearà un Canvas i un Event System automàticament si no existeixen.
  2. Verificar l'Event System:

    • Assegureu-vos que hi ha un Event System en la jerarquia. Si no, creeu-ne un anant a GameObject > UI > Event System.

Pas 2: Afegir Elements de UI

  1. Afegir un Botó:

    • Aneu a GameObject > UI > Button.
    • Això afegirà un botó al Canvas.
  2. Afegir un Slider:

    • Aneu a GameObject > UI > Slider.
    • Això afegirà un slider al Canvas.

Pas 3: Gestionar Esdeveniments de UI

Exemple 1: Gestionar Clics de Botó

  1. Crear un Script per al Botó:
    • Creeu un nou script C# anomenat ButtonHandler.cs i adjunteu-lo a un GameObject (pot ser el mateix Canvas).
using UnityEngine;
using UnityEngine.UI;

public class ButtonHandler : MonoBehaviour
{
    public Button myButton;

    void Start()
    {
        myButton.onClick.AddListener(OnButtonClick);
    }

    void OnButtonClick()
    {
        Debug.Log("Botó clicat!");
    }
}
  1. Assignar el Botó al Script:
    • Arrossegueu el botó des de la jerarquia fins al camp My Button en l'inspector del script ButtonHandler.

Exemple 2: Gestionar Canvis en un Slider

  1. Crear un Script per al Slider:
    • Creeu un nou script C# anomenat SliderHandler.cs i adjunteu-lo a un GameObject (pot ser el mateix Canvas).
using UnityEngine;
using UnityEngine.UI;

public class SliderHandler : MonoBehaviour
{
    public Slider mySlider;

    void Start()
    {
        mySlider.onValueChanged.AddListener(OnSliderValueChanged);
    }

    void OnSliderValueChanged(float value)
    {
        Debug.Log("Valor del slider: " + value);
    }
}
  1. Assignar el Slider al Script:
    • Arrossegueu el slider des de la jerarquia fins al camp My Slider en l'inspector del script SliderHandler.

Exercicis Pràctics

Exercici 1: Afegir un Toggle i Gestionar el seu Estat

  1. Afegir un Toggle:

    • Aneu a GameObject > UI > Toggle.
  2. Crear un Script per al Toggle:

    • Creeu un nou script C# anomenat ToggleHandler.cs i adjunteu-lo a un GameObject.
using UnityEngine;
using UnityEngine.UI;

public class ToggleHandler : MonoBehaviour
{
    public Toggle myToggle;

    void Start()
    {
        myToggle.onValueChanged.AddListener(OnToggleValueChanged);
    }

    void OnToggleValueChanged(bool isOn)
    {
        Debug.Log("Toggle està " + (isOn ? "activat" : "desactivat"));
    }
}
  1. Assignar el Toggle al Script:
    • Arrossegueu el toggle des de la jerarquia fins al camp My Toggle en l'inspector del script ToggleHandler.

Exercici 2: Crear un Sistema de Menú Simple

  1. Crear un Menú amb Botons:

    • Creeu diversos botons per representar diferents opcions de menú.
  2. Gestionar els Clics dels Botons:

    • Creeu un script que gestioni els clics de cada botó i mostri un missatge diferent per a cada opció.
using UnityEngine;
using UnityEngine.UI;

public class MenuHandler : MonoBehaviour
{
    public Button playButton;
    public Button settingsButton;
    public Button exitButton;

    void Start()
    {
        playButton.onClick.AddListener(OnPlayButtonClick);
        settingsButton.onClick.AddListener(OnSettingsButtonClick);
        exitButton.onClick.AddListener(OnExitButtonClick);
    }

    void OnPlayButtonClick()
    {
        Debug.Log("Play clicat!");
    }

    void OnSettingsButtonClick()
    {
        Debug.Log("Settings clicat!");
    }

    void OnExitButtonClick()
    {
        Debug.Log("Exit clicat!");
    }
}
  1. Assignar els Botons al Script:
    • Arrossegueu cada botó des de la jerarquia fins als camps corresponents en l'inspector del script MenuHandler.

Errors Comuns i Consells

  • No Assignar els Elements de UI: Assegureu-vos que els elements de UI estan correctament assignats als camps públics dels scripts.
  • No Afegir Listeners: Recordeu afegir listeners per als esdeveniments en el mètode Start o Awake.
  • Depuració: Utilitzeu Debug.Log per verificar que els esdeveniments es gestionen correctament.

Conclusió

En aquesta secció, hem après com gestionar esdeveniments de UI en Unity, incloent clics de botons i canvis en sliders. Hem creat scripts per gestionar aquests esdeveniments i hem practicat amb exercicis pràctics. Ara estem preparats per crear interfícies d'usuari més complexes i interactives en els nostres projectes de Unity. En la següent secció, explorarem com crear menús i HUDs per millorar encara més la nostra interfície d'usuari.

Curs de Unity

Mòdul 1: Introducció a Unity

Mòdul 2: Programació Bàsica en Unity

Mòdul 3: Treballant amb Actius

Mòdul 4: Física i Col·lisions

Mòdul 5: Interfície d'Usuari (UI)

Mòdul 6: Àudio en Unity

Mòdul 7: Programació Avançada

Mòdul 8: Física Avançada i IA

Mòdul 9: Optimització i Rendiment

Mòdul 10: Publicació i Més Enllà

© Copyright 2024. Tots els drets reservats