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?

Était-ce utile?

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.

Autres conseils

S'il vous plaît ajouter des balises à l'unité. Peut-être vous ne pas ajouter des balises à des objets. S'il vous plaît ajouter tag1 et tag2 à vos balises, sélectionnez vos objets et sélectionnez tag1 ou tag2.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top