Domanda

Ho un problema con la mia funzione onCollisionEnter in Unity3d. La cosa è che ho un terzo regolatore di persona che se si scontra con un oggetto boudary dovrebbero attivare un altro gameobject e un'etichetta.

questo è il modo che ho dato il mio codice

function OnCollisionEnter(collision : Collision)
{
   if(collision.gameobject1.tag=="tag1")
   {
     // activate game object and label
   }
   if(collision.gameobject2.tag=="tag2")
   {
      // deactivate game object and label
   }
}

Il problema è che sta entrando sia i passanti e non so se quello che ho dato è sbagliato o il modo in cui ho dato. Dove sto andando male?

È stato utile?

Soluzione

Se l'evento OnCollisionEnter sta sparando (si potrebbe aggiungere una stampa per essere sicuri), poi ci sono due cose da controllare: tag e collisionatori

Tag

Prova

collision.transform.tag

Verifica inoltre di aver selezionato il tag giusto per il gameobject.

Colliders

In Unity3D i callback di collisione (onCollisionEnter, ecc) accadere solo in determinate circostanze. EX:. A gameobject (gameobject1) con un collisore e componente di corpo rigido si scontrerà con una statica (non in movimento) gameobject (gameobject2) che appena ha un collisore

Vorrei guardare Box Collider Riferimento perché in fondo è un azione Collision matrice che spiega in quali condizioni si verificano le collisioni.

Altri suggerimenti

Si prega di aggiungere tag ai Unity. Forse non aggiungere tag agli oggetti. Si prega di aggiungere tag1 e tag2 ai tag, selezionare gli oggetti, e selezionare tag1 o tag2.

entrare descrizione dell'immagine qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top