OnCollisionEnter ne fonctionne pas
-
27-10-2019 - |
Question
J'ai un problème avec ma fonction onCollisionEnter dans Unity3d. La chose est que j'ai un contrôleur 3e personne qui se entre en collision avec un objet boudary doit activer un autre gameobject et une étiquette.
est comment j'ai donné mon code
function OnCollisionEnter(collision : Collision)
{
if(collision.gameobject1.tag=="tag1")
{
// activate game object and label
}
if(collision.gameobject2.tag=="tag2")
{
// deactivate game object and label
}
}
le problème est-il entre dans les deux boucles et je sais pas si ce que j'ai donné est faux ou la façon dont j'ai donné. Où vais-je tort?
La solution
Si l'événement est OnCollisionEnter tir (vous pouvez ajouter une impression pour vous assurer), alors il y a deux choses à vérifier: balises et collisionneurs
Tags
Essayez
collision.transform.tag
Vérifiez également que vous avez sélectionné la balise droite pour le gameobject.
collisionneurs
Dans Unity3D les callbacks de collision (onCollisionEnter, etc.) ne se produira que dans certaines circonstances. Ex.: Une gameobject (de gameobject1) avec un collisionneur et un composant heurtera modèle du solide indéformable statique (ne bouge pas) de gameobject (de gameobject2) qui a juste un collisionneur
Je regardais Boîte collisionneur Référence car au fond est matrice d'action Collision qui explique dans quelles conditions les collisions se produisent.