La interfície d'usuari (UI) és una part fonamental de qualsevol joc, ja que permet als jugadors interactuar amb el joc de manera intuïtiva i eficient. En aquest tema, aprendrem els conceptes bàsics de la UI en Unity, com crear elements de UI i com personalitzar-los per adaptar-los a les necessitats del nostre joc.
Objectius del Tema
- Entendre els conceptes bàsics de la UI en Unity.
- Aprendre a crear elements de UI bàsics.
- Personalitzar els elements de UI.
- Introduir-se en la gestió d'esdeveniments de UI.
Conceptes Bàsics de la UI en Unity
Sistema de UI de Unity
Unity utilitza un sistema de UI basat en components que permet crear interfícies d'usuari de manera visual i programàtica. Els elements de UI es col·loquen dins d'un Canvas
, que actua com a contenidor principal per a tots els elements de UI.
Components Principals
- Canvas: El contenidor principal per a tots els elements de UI. Tots els elements de UI han de ser fills d'un
Canvas
. - RectTransform: Un component que defineix la posició, mida i ancoratge dels elements de UI dins del
Canvas
. - EventSystem: Gestiona els esdeveniments d'entrada (com clics de ratolí i tocs de pantalla) per als elements de UI.
Creant Elements de UI Bàsics
Pas 1: Crear un Canvas
- A la jerarquia, fes clic dret i selecciona
UI > Canvas
. - Això crearà un nou
Canvas
i unEventSystem
automàticament.
Pas 2: Afegir un Text
- Amb el
Canvas
seleccionat, fes clic dret i seleccionaUI > Text
. - Això afegirà un nou element de text com a fill del
Canvas
.
Pas 3: Personalitzar el Text
- Selecciona l'element de text a la jerarquia.
- A l'inspector, pots canviar les propietats del text com la font, mida, color, etc.
// Exemple de codi per canviar el text programàticament using UnityEngine; using UnityEngine.UI; public class ChangeText : MonoBehaviour { public Text myText; void Start() { myText.text = "Hola, món!"; } }
Pas 4: Afegir un Botó
- Amb el
Canvas
seleccionat, fes clic dret i seleccionaUI > Button
. - Això afegirà un nou botó com a fill del
Canvas
.
Pas 5: Personalitzar el Botó
- Selecciona l'element de botó a la jerarquia.
- A l'inspector, pots canviar les propietats del botó com el text, colors, etc.
// Exemple de codi per afegir una funció al botó using UnityEngine; using UnityEngine.UI; public class ButtonClick : MonoBehaviour { public Button myButton; void Start() { myButton.onClick.AddListener(TaskOnClick); } void TaskOnClick() { Debug.Log("Botó clicat!"); } }
Personalitzant Elements de UI
Utilitzant Ancoratges i Pivot Points
Els ancoratges i pivot points són eines poderoses per posicionar i redimensionar elements de UI de manera dinàmica.
- Ancoratges: Defineixen com un element de UI es posiciona i redimensiona en relació amb el seu pare.
- Pivot Points: Defineixen el punt de referència per a la rotació i escalat d'un element de UI.
Exemple Pràctic: Crear un HUD (Head-Up Display)
- Crea un nou
Canvas
. - Afegeix elements de UI com textos, imatges i botons per mostrar informació com la salut del jugador, puntuació, etc.
- Utilitza ancoratges per assegurar-te que els elements es redimensionen correctament en diferents resolucions de pantalla.
// Exemple de codi per actualitzar un HUD using UnityEngine; using UnityEngine.UI; public class HUD : MonoBehaviour { public Text healthText; public Text scoreText; private int health = 100; private int score = 0; void Update() { healthText.text = "Salut: " + health; scoreText.text = "Puntuació: " + score; } public void TakeDamage(int damage) { health -= damage; } public void AddScore(int points) { score += points; } }
Exercici Pràctic
Objectiu
Crear una interfície d'usuari bàsica que mostri un missatge de benvinguda i un botó que, quan es clica, canviï el missatge.
Passos
- Crea un nou
Canvas
. - Afegeix un element de text amb el missatge "Benvingut al Joc!".
- Afegeix un botó amb el text "Canvia Missatge".
- Escriu un script que canviï el text del missatge quan es clica el botó.
Solució
using UnityEngine; using UnityEngine.UI; public class WelcomeUI : MonoBehaviour { public Text welcomeText; public Button changeMessageButton; void Start() { changeMessageButton.onClick.AddListener(ChangeMessage); } void ChangeMessage() { welcomeText.text = "Missatge Canviat!"; } }
Resum
En aquest tema, hem après els conceptes bàsics de la UI en Unity, com crear elements de UI bàsics com textos i botons, i com personalitzar-los. També hem vist com utilitzar ancoratges i pivot points per posicionar i redimensionar elements de UI de manera dinàmica. Finalment, hem realitzat un exercici pràctic per reforçar els conceptes apresos.
En el següent tema, aprofundirem en la creació i personalització d'elements de UI més avançats.
Curs de Unity
Mòdul 1: Introducció a Unity
- Introducció a Unity i Instal·lació
- Visió General de la Interfície de Unity
- Creant el Teu Primer Projecte
- Objectes de Joc Bàsics i Components
Mòdul 2: Programació Bàsica en Unity
- Introducció a C# per a Unity
- Creant i Adjuntant Scripts
- Entenent MonoBehaviour
- Gestió Bàsica d'Entrades
Mòdul 3: Treballant amb Actius
- Important i Gestionant Actius
- Utilitzant la Botiga d'Actius
- Creant i Utilitzant Prefabs
- Animació Bàsica
Mòdul 4: Física i Col·lisions
- Introducció a la Física de Unity
- Rigidbody i Col·liders
- Detecció Bàsica de Col·lisions
- Utilitzant Materials de Física
Mòdul 5: Interfície d'Usuari (UI)
- Introducció a la UI de Unity
- Creant i Personalitzant Elements de UI
- Gestió d'Esdeveniments de UI
- Creant Menús i HUDs
Mòdul 6: Àudio en Unity
- Introducció a l'Àudio en Unity
- Important i Utilitzant Clips d'Àudio
- Programació Bàsica d'Àudio
- Àudio 3D i So Espacial
Mòdul 7: Programació Avançada
- Conceptes Avançats de C# per a Unity
- Coroutines i Programació Asíncrona
- Objectes Scriptables
- Editors Personalitzats i Gizmos
Mòdul 8: Física Avançada i IA
- Tècniques Avançades de Física
- Pathfinding i Navegació
- Programació Bàsica d'IA
- Màquines d'Estats i Arbres de Comportament
Mòdul 9: Optimització i Rendiment
- Tècniques de Perfilat i Optimització
- Gestió de Memòria
- Reduint Draw Calls
- Optimitzant Física i Col·lisions