Bonjour,
Je voudrais savoir si il est possible d'avoir 2 Box Colliders sur un objet, et dans un script, faire une action différente en fonction du box Collider sur lequel on a cliqué.
Merci,
[RESOLU][DB-AL] 2 Box Colliders pour un même objet
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
[RESOLU][DB-AL] 2 Box Colliders pour un même objet
Dernière édition par DJ-OMZ le 13 Sep 2018 14:19, édité 1 fois.
Re: [DB-AL] 2 Box Colliders pour un même objet
Oui, tu peux mettre plusieurs colliders sur un même gameobject.
Par contre ça va être plus compliqué pour les différencier, car il va falloir les référencer avant pour savoir qui est qui.
Tu peux essayer avec un script de ce type, où tu auras préalablement listé les colliders dans l'inspecteur pour déterminer leur ordre et donc savoir lequel est le premier et lequel est le second.
Par contre ça va être plus compliqué pour les différencier, car il va falloir les référencer avant pour savoir qui est qui.
Tu peux essayer avec un script de ce type, où tu auras préalablement listé les colliders dans l'inspecteur pour déterminer leur ordre et donc savoir lequel est le premier et lequel est le second.
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour {
public List<Collider> colliders = new List<Collider>();
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (hit.collider != null)
{
int index = colliders.IndexOf(hit.collider);
switch (index)
{
case 0:
Debug.Log("Collider A");
break;
case 1:
Debug.Log("Collider B");
break;
}
}
}
}
}
}
- boubouk50
- ModoGenereux
- Messages : 6216
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] 2 Box Colliders pour un même objet
Tu peux également organiser tes Colliders pour les mettre en tant qu'enfant.
Tu gardes ton gameObject tel quel, tu crées des gameObjects vide enfants auxquels tu colleras chacun un collider.
Ensuite, quand un Collider est touché, tu peux savoir qui il est car le gameObject associé sera différent.
Tu gardes ton gameObject tel quel, tu crées des gameObjects vide enfants auxquels tu colleras chacun un collider.
Ensuite, quand un Collider est touché, tu peux savoir qui il est car le gameObject associé sera différent.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: [DB-AL] 2 Box Colliders pour un même objet
Merci de la réponse;
Effectivement ça fonctionne, bien joué et merci
Boubouk50 : Malheureusement dans mon cas j'ai certaines particularités qui me rendent cette solution impossible, mais pas grave l'autre méthode fonctionne parfaitement !
Effectivement ça fonctionne, bien joué et merci
Boubouk50 : Malheureusement dans mon cas j'ai certaines particularités qui me rendent cette solution impossible, mais pas grave l'autre méthode fonctionne parfaitement !