OnCollisionEnter non funziona
-
27-10-2019 - |
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?
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.