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.
- 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.
- Creant un Material de Física
Pas 1: Crear el Material de Física
- Obre Unity i el teu projecte.
- A la finestra del Project, fes clic dret i selecciona
Create > Physics Material
. - Anomena el nou material, per exemple,
BouncyMaterial
.
Pas 2: Configurar les Propietats del Material
- Selecciona el material que acabes de crear.
- 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.
- Aplicant el Material de Física a un Objecte
Pas 1: Crear un Objecte de Joc
- Afegeix un objecte de joc a l'escena, per exemple, una esfera (
GameObject > 3D Object > Sphere
). - Assegura't que l'objecte tingui un component
Rigidbody
per aplicar la física.
Pas 2: Assignar el Material de Física
- Selecciona l'objecte de joc a l'escena.
- A la finestra de l'Inspector, localitza el component
Collider
(per exemple,Sphere Collider
). - Arrossega el material de física (
BouncyMaterial
) al campMaterial
delCollider
.
- 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 deMonoBehaviour
. - 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
- Crea un nou script (
ApplyForce.cs
) i copia el codi anterior. - Arrossega l'script a l'objecte de joc (l'esfera).
- Exercici Pràctic
Objectiu
Crea un objecte de joc que reboti de manera realista quan col·lideixi amb altres objectes.
Passos
- Crea un nou material de física amb les següents propietats:
- Dynamic Friction: 0.2
- Static Friction: 0.3
- Bounciness: 1.0
- Aplica aquest material a un objecte de joc (per exemple, un cub).
- Afegeix un
Rigidbody
al cub. - Crea una plataforma (per exemple, un pla) perquè el cub hi caigui.
- Executa l'escena i observa el comportament del cub.
Solució
- Crea el material de física i ajusta les propietats.
- Aplica el material al
Box Collider
del cub. - Afegeix un
Rigidbody
al cub. - Crea un pla (
GameObject > 3D Object > Plane
) i col·loca'l sota el cub. - Executa l'escena i observa com el cub rebota sobre el pla.
- 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
- 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