En aquest tema, aprendrem com utilitzar materials de física en Unity per controlar les propietats físiques dels objectes de joc, com la fricció i el rebot. Els materials de física són essencials per crear interaccions realistes entre objectes en un entorn de joc.

  1. Què són els Materials de Física?

Els materials de física en Unity permeten definir com es comporten les superfícies dels objectes quan entren en contacte. Les propietats principals que es poden ajustar són:

  • Fricció Dinàmica (Dynamic Friction): La resistència al moviment quan un objecte es mou sobre una superfície.
  • Fricció Estàtica (Static Friction): La resistència al moviment quan un objecte està en repòs sobre una superfície.
  • Rebot (Bounciness): La capacitat d'un objecte de rebotar després d'un impacte.

  1. Creant un Material de Física

Pas 1: Crear el Material de Física

  1. Obre Unity i el teu projecte.
  2. A la finestra del Project, fes clic dret i selecciona Create > Physics Material.
  3. Anomena el nou material, per exemple, BouncyMaterial.

Pas 2: Configurar les Propietats del Material

  1. Selecciona el material que acabes de crear.
  2. A la finestra de l'Inspector, ajusta les propietats següents:
    • Dynamic Friction: 0.4
    • Static Friction: 0.6
    • Bounciness: 0.8
    • Friction Combine: Average
    • Bounce Combine: Maximum

Aquestes configuracions faran que l'objecte tingui una fricció moderada i un rebot alt.

  1. Aplicant el Material de Física a un Objecte

Pas 1: Crear un Objecte de Joc

  1. Afegeix un objecte de joc a l'escena, per exemple, una esfera (GameObject > 3D Object > Sphere).
  2. Assegura't que l'objecte tingui un component Rigidbody per aplicar la física.

Pas 2: Assignar el Material de Física

  1. Selecciona l'objecte de joc a l'escena.
  2. A la finestra de l'Inspector, localitza el component Collider (per exemple, Sphere Collider).
  3. Arrossega el material de física (BouncyMaterial) al camp Material del Collider.

  1. Exemple Pràctic

Codi per Aplicar Força a l'Objecte

using UnityEngine;

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

    void Start()
    {
        Rigidbody rb = GetComponent<Rigidbody>();
        if (rb != null)
        {
            rb.AddForce(Vector3.up * forceAmount);
        }
    }
}

Explicació del Codi

  • Línia 1: Importa la biblioteca de Unity.
  • Línia 3: Defineix una classe ApplyForce que hereta de MonoBehaviour.
  • Línia 5: Declara una variable pública forceAmount per determinar la quantitat de força a aplicar.
  • Línia 7: La funció Start s'executa al començament del joc.
  • Línia 9: Obté el component Rigidbody de l'objecte.
  • Línia 10-12: Si l'objecte té un Rigidbody, aplica una força cap amunt.

Assignar l'Script a l'Objecte

  1. Crea un nou script (ApplyForce.cs) i copia el codi anterior.
  2. Arrossega l'script a l'objecte de joc (l'esfera).

  1. Exercici Pràctic

Objectiu

Crea un objecte de joc que reboti de manera realista quan col·lideixi amb altres objectes.

Passos

  1. Crea un nou material de física amb les següents propietats:
    • Dynamic Friction: 0.2
    • Static Friction: 0.3
    • Bounciness: 1.0
  2. Aplica aquest material a un objecte de joc (per exemple, un cub).
  3. Afegeix un Rigidbody al cub.
  4. Crea una plataforma (per exemple, un pla) perquè el cub hi caigui.
  5. Executa l'escena i observa el comportament del cub.

Solució

  1. Crea el material de física i ajusta les propietats.
  2. Aplica el material al Box Collider del cub.
  3. Afegeix un Rigidbody al cub.
  4. Crea un pla (GameObject > 3D Object > Plane) i col·loca'l sota el cub.
  5. Executa l'escena i observa com el cub rebota sobre el pla.

  1. Conclusió

Els materials de física són una eina poderosa en Unity per controlar les interaccions físiques entre objectes. Ajustant les propietats de fricció i rebot, pots crear comportaments realistes que milloren l'experiència de joc. Practica creant i aplicant diferents materials de física per familiaritzar-te amb les seves possibilitats.

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