En aquest tema, aprendrem com crear scripts en Unity utilitzant C# i com adjuntar aquests scripts als objectes de joc dins de l'editor de Unity. Els scripts són una part fonamental del desenvolupament de jocs en Unity, ja que permeten definir el comportament dels objectes de joc.

  1. Creant un Script

Passos per crear un script:

  1. Obre el teu projecte de Unity.
  2. Selecciona la carpeta "Assets" a la finestra del "Project".
  3. Crea una nova carpeta anomenada "Scripts" per organitzar els teus scripts (opcional però recomanat).
  4. Clica amb el botó dret dins de la carpeta "Scripts" i selecciona Create > C# Script.
  5. Dóna un nom al teu script, per exemple, PlayerController.

Exemple de codi:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    // Variables públiques poden ser ajustades des de l'Inspector
    public float speed = 5.0f;

    // Aquest mètode s'executa una vegada quan el script s'inicialitza
    void Start()
    {
        Debug.Log("PlayerController script attached and started!");
    }

    // Aquest mètode s'executa una vegada per frame
    void Update()
    {
        // Moviment bàsic del jugador
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
        transform.Translate(movement * speed * Time.deltaTime);
    }
}

Explicació del codi:

  • using UnityEngine;: Importa la biblioteca de Unity necessària per accedir a les funcionalitats bàsiques.
  • public class PlayerController : MonoBehaviour: Defineix una nova classe PlayerController que hereta de MonoBehaviour, la classe base per a tots els scripts de Unity.
  • public float speed = 5.0f;: Declara una variable pública speed que pot ser ajustada des de l'Inspector.
  • void Start(): Mètode que s'executa una vegada quan el script s'inicialitza.
  • void Update(): Mètode que s'executa una vegada per frame, ideal per a la lògica de moviment i altres actualitzacions contínues.
  • Input.GetAxis("Horizontal") i Input.GetAxis("Vertical"): Captura les entrades de l'usuari per al moviment horitzontal i vertical.
  • transform.Translate(movement * speed * Time.deltaTime): Mou l'objecte de joc basat en les entrades de l'usuari.

  1. Adjuntant un Script a un Objecte de Joc

Passos per adjuntar un script:

  1. Selecciona l'objecte de joc al qual vols adjuntar el script des de la jerarquia.
  2. Arrossega i deixa anar el script PlayerController des de la carpeta "Scripts" a la finestra de l'Inspector de l'objecte de joc.
  3. Alternativament, pots clicar el botó "Add Component" a la finestra de l'Inspector, buscar PlayerController i seleccionar-lo.

Verificació:

  • Un cop adjuntat, el script apareixerà com un component a la finestra de l'Inspector de l'objecte de joc.
  • Pots ajustar la variable speed directament des de l'Inspector.

Exercici Pràctic

Objectiu:

Crea un script que permeti a un objecte de joc moure's cap amunt i cap avall utilitzant les tecles de fletxa.

Passos:

  1. Crea un nou script anomenat VerticalMover.
  2. Implementa el següent codi:
using UnityEngine;

public class VerticalMover : MonoBehaviour
{
    public float speed = 5.0f;

    void Update()
    {
        float moveVertical = Input.GetAxis("Vertical");
        Vector3 movement = new Vector3(0.0f, moveVertical, 0.0f);
        transform.Translate(movement * speed * Time.deltaTime);
    }
}
  1. Adjunta el script a un objecte de joc, com ara un cub.
  2. Executa el joc i utilitza les tecles de fletxa amunt i avall per moure l'objecte.

Solució:

El codi anterior permetrà que l'objecte de joc es mogui cap amunt i cap avall en resposta a les tecles de fletxa. Assegura't que l'objecte de joc tingui un component Rigidbody si vols que la física afecti el moviment.

Errors Comuns i Consells

  • Error: El script no apareix a l'Inspector: Assegura't que el nom del fitxer del script coincideixi exactament amb el nom de la classe dins del script.
  • Error: Moviment no funciona correctament: Verifica que el component Rigidbody estigui configurat correctament i que no hi hagi altres scripts que interfereixin amb el moviment.
  • Consell: Utilitza Debug.Log per imprimir missatges a la consola i ajudar a depurar el teu codi.

Conclusió

En aquesta secció, hem après com crear scripts en Unity utilitzant C# i com adjuntar aquests scripts als objectes de joc. Els scripts són essencials per definir el comportament dels objectes de joc i permeten una gran flexibilitat en el desenvolupament de jocs. En la propera secció, explorarem més a fons el component MonoBehaviour i com utilitzar-lo per crear comportaments més complexos.

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