Ühtsus - erinevus päästiku ja kokkupõrke vahel (erinevus OnTriggerEnteri ja OnCollisionEnteri vahel)

Unity Difference Between Trigger



Üldises võidusõidumängus kasutatakse rekvisiite päästikute jaoks ja auto kasutab kokkupõrget.

Käivita

Mängustseenis peame sageli kasutama päästikut. Näiteks võidusõidumängus on rajal rekvisiidid. Saame selle rekvisiite puudutades. Kuid me ei vaja, et auto ja tee oleksid otsese kokkupõrke efektiga, nii et auto mõjutab kiirust, mängukogemus on väga kehv. Seega kasutame sündmuste tuvastamiseks tavaliselt päästikuid. Tuleb märkida, et päästiku kasutamine objekti IsTrigger kontrollimiseks võib läbi minna Vastasel juhul ei käivitata koodi enne, kui kood on õigesti kirjutatud.
pilt
päästiku meetod (kuupile paigutatud skript)



avaliku klassi test: MonoBehaviour
{
void OnTriggerEnter (muu Collider)
{
print (“0”)
// InTriggerEnter kutsutakse puudutamisel üks kord.
}
void OnTriggerExit (muu Collider)
{
print (“1”)
// InTriggerEnter kutsutakse puudutuse lõpus üks kord.
}
void OnTriggerStay (muu Collider)
{
print (“2”)
// Helistage ka seni, kuni puudutus ei lõpe
}



}



Katsestsenaariumi korral laske pallil kuubi otsast alla kukkuda (pallile lisatakse Rigidbody-jäik komponent). Näete, et OnTriggerStay on täidetud mitu korda ja teised on ainult üks kord. **. kuup kontrollis IsTriggerit **
pilt

2. Kokkupõrge

Samamoodi kasutame võidusõidumängude puhul, kui tahame teisi autosid lüüa, kokkupõrkeseadet, nagu ka kaitserauda. Nii ei saa auto päästikut kasutada. Vastasel juhul möödub äkki auto otse auto tagant. See mäng on väga kummaline. (Kokkupõrge ei vaja IsTriggeri kontrollimist)

Kokkupõrke meetod
avaliku klassi test: MonoBehaviour
{
void OnCollisionEnter (muu kokkupõrge)
{
print (“0”)
// InCollisionEnter kutsutakse puudutamisel üks kord.
}
void OnCollisionExit (muu kokkupõrge)
{
print (“1”)
// InCollisionExit kutsutakse puudutuse lõpus üks kord.
}
void OnCollisionStay (muu kokkupõrge)
{
print (“2”)
// Helistage ka seni, kuni puudutus ei lõpe
}



}

Sain just teada, et OnCollisionStay peatati selle täitmisel 15 korda, kuid seni, kuni mobiilipall OnCollisionStay jätkab helistamist, kutsutakse OnCollisionExiti meetodit, kui pall langeb lennukile.
.cube ei kontrolli IsTriggerit
pilt

Jooksmisel muutke palli x-telje asukohta, et see pall tasapinnale kukutada.
pilt