Objectius del Mòdul

En aquest mòdul, aprendràs els conceptes bàsics de la física en Unity, incloent-hi com utilitzar components com Rigidbody i Colliders per crear interaccions físiques realistes en els teus jocs. Al final d'aquest mòdul, seràs capaç de:

  • Entendre els fonaments de la física en Unity.
  • Aplicar components de física als objectes de joc.
  • Configurar i ajustar les propietats físiques per obtenir el comportament desitjat.

Conceptes Clau

  • Rigidbody: Component que permet que un objecte de joc sigui afectat per la física.
  • Collider: Component que defineix la forma de l'objecte per a la detecció de col·lisions.
  • Forces: Aplicació de forces per moure objectes de joc.
  • Gravetat: Configuració de la gravetat per a objectes de joc.

Components de Física en Unity

Rigidbody

El component Rigidbody és essencial per a qualsevol objecte que necessiti ser afectat per la física, com ara la gravetat o les forces aplicades. A continuació es mostra com afegir un Rigidbody a un objecte de joc:

using UnityEngine;

public class AddRigidbody : MonoBehaviour
{
    void Start()
    {
        // Afegir un component Rigidbody a l'objecte de joc
        Rigidbody rb = gameObject.AddComponent<Rigidbody>();
        
        // Configurar propietats del Rigidbody
        rb.mass = 1.0f;
        rb.drag = 0.5f;
        rb.angularDrag = 0.05f;
        rb.useGravity = true;
    }
}

Collider

Els Colliders defineixen la forma de l'objecte per a la detecció de col·lisions. Hi ha diversos tipus de Colliders disponibles en Unity, com ara BoxCollider, SphereCollider, i MeshCollider. Aquí tens un exemple de com afegir un BoxCollider:

using UnityEngine;

public class AddBoxCollider : MonoBehaviour
{
    void Start()
    {
        // Afegir un component BoxCollider a l'objecte de joc
        BoxCollider boxCollider = gameObject.AddComponent<BoxCollider>();
        
        // Configurar propietats del BoxCollider
        boxCollider.size = new Vector3(1.0f, 1.0f, 1.0f);
    }
}

Aplicació de Forces

Per moure objectes de joc utilitzant la física, pots aplicar forces al Rigidbody. Aquí tens un exemple de com aplicar una força cap endavant:

using UnityEngine;

public class ApplyForce : MonoBehaviour
{
    public float forceAmount = 10.0f;

    void Start()
    {
        Rigidbody rb = GetComponent<Rigidbody>();
        if (rb != null)
        {
            // Aplicar una força cap endavant
            rb.AddForce(transform.forward * forceAmount, ForceMode.Impulse);
        }
    }
}

Exercicis Pràctics

Exercici 1: Afegir un Rigidbody i un Collider

  1. Crea un nou projecte en Unity.
  2. Afegeix un objecte de joc (per exemple, un cub).
  3. Escriu un script que afegeixi un Rigidbody i un BoxCollider a l'objecte de joc.
  4. Configura les propietats del Rigidbody i del BoxCollider.

Solució:

using UnityEngine;

public class SetupPhysics : MonoBehaviour
{
    void Start()
    {
        // Afegir Rigidbody
        Rigidbody rb = gameObject.AddComponent<Rigidbody>();
        rb.mass = 1.0f;
        rb.drag = 0.5f;
        rb.angularDrag = 0.05f;
        rb.useGravity = true;

        // Afegir BoxCollider
        BoxCollider boxCollider = gameObject.AddComponent<BoxCollider>();
        boxCollider.size = new Vector3(1.0f, 1.0f, 1.0f);
    }
}

Exercici 2: Aplicar una Força a un Objecte

  1. Utilitza el mateix projecte de l'exercici anterior.
  2. Escriu un script que apliqui una força cap endavant a l'objecte de joc quan comenci el joc.

Solució:

using UnityEngine;

public class ApplyForwardForce : MonoBehaviour
{
    public float forceAmount = 10.0f;

    void Start()
    {
        Rigidbody rb = GetComponent<Rigidbody>();
        if (rb != null)
        {
            rb.AddForce(transform.forward * forceAmount, ForceMode.Impulse);
        }
    }
}

Errors Comuns i Consells

  • Oblidar afegir un Rigidbody: Si un objecte de joc no té un Rigidbody, no serà afectat per la física.
  • Configuració incorrecta del Collider: Assegura't que el Collider tingui la mida i la forma correctes per a l'objecte de joc.
  • Aplicar forces en el moment equivocat: És millor aplicar forces en el mètode FixedUpdate per assegurar-se que es sincronitzen amb el motor de física.

Conclusió

En aquest mòdul, has après els fonaments de la física en Unity, incloent-hi com afegir i configurar components Rigidbody i Collider, així com aplicar forces als objectes de joc. Aquests conceptes són essencials per crear interaccions físiques realistes en els teus jocs. En el proper mòdul, aprofundirem en l'ús de Rigidbody i Colliders per a la detecció de col·lisions.

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