Sur des projets 2D, on a besoin que nos Sprites 2D puissent interagir entre eux en utilisant le moteur physique de Unity. Ainsi il faut utiliser des composants de type Collider 2D, permettant de définir une "forme" physique lui permettant de rentrer en collision avec d'autres objets portant un composant Collider.
Il faut avant tout, bien faire la différence entre des composants Collider 2D ET 3D ! Sachez d'ailleurs que les 2 types mélangés ensemble ne font pas bon ménage.
Découvrons ensemble les Colliders avec Unity.
Les Colliders 2D avec Unity
Il existe 7 types de Collider 2D différents sous Unity 2019.3:
- Box Collider
- Capsule Collider
- Circle Collider
- CompositeCollider
- EdgeCollider
- PolygonCollider
- TileMapCollider
Types de Collider2D sous Unity
Tous ces colliders héritent de la même classe de base Collider 2D de Unity. Ainsi on pourra, en scriptant, accéder aux méthodes de cette classe.
Mais comment choisir le bon collider ?
En réalité tout dépend de la forme du Sprite ! En effet il suffit de prendre le Collider 2D le plus adapté à la forme, cercle, polygon pour les formes complexes, carré ou rectangle...
Ainsi seul votre jugement est maître,.
La plupart du temps vous utiliserez principalement les formes carrées/rectangles (BoxCollider2D) et cercle (CircleCollider2D) ou encore capsule (CapsuleCollider2D)...faites vous votre propre idée en ajoutant votre premier composant de type Collider 2D sur un GameObject de votre scène.
Une bonne utilisation du Edge Collider est de l'appliquer sur des surfaces, comme le sol d'un plateformer par exemple...cela évite d'utiliser une multitude de Box Collider 2D.
Un Sprite compliqué avec une forme complexe ? Utilisez un PolygonCollider2D et détourez votre sprite.
Utilisez TileMapCollider2D pour vos monde 2D crées en Tilemap.
Tous ces Colliders partagent 2 propriétés de leur composants, les autres propriétés sont spécifiques comme les paramètres ayant un impact sur la forme du Collider
Notez avant tout le bouton sur la droite du "Edit Collider". Ce bouton vous permet de modifier la forme de votre éditeur directement dans la scène.
Mais revenons à nos 2 propriétés:
- Material: Ce material est en réalité un material physic ! Perturbant, non ? Et bien pas tant que ça ...
En effet que pensez vous d'un Material rebondissant ou glissant ? Et bien oui avec un Physic Material 2D, en l'assignant au composant, on peut "transformer" notre GameObject en glaçon super glissant ...
- isTrigger: Une fois coché votre GameObject pourra être traversé et sera donc non bloquant, vis à vis des autres Collider porté par d'autres GameObject.
Ajouter un composant Collider 2D a un GameObject sous Unity
Sur ce plan, rien de plus simple avec Unity.
Sélectionnez un GameObject de votre scène et cliquez sur AddComponent dans l'Inspector. Puis commencer à entrer dans le champ le mot "collider", pour voir apparaître la liste des Colliders disponible?
Sélectionnez celui de votre choix et ce dernier sera ajouté à la liste des composants de votre GameObject.
Le collider prendra automatiquement la place ajustée de votre Sprite, libre à vous ensuite d'ajuster selon vos besoins.
Ensuite vous pouvez paramétrer le collider ...