OnCollision je Unityjeva metoda uz pomoć koje možemo provjeriti na temelju kolajdera je li neki drugi objekt taknuo, prestao dirati ili dira taj objekt.
Uz pomoć metode OnCollisionEnter možemo provjeriti je li neki objekt taknuo objekt na kojem je skripta.
U sljedećem primjeru ćemo povećati x za 1 svaki put kada kada neki objekt takne objekt na kojem je skripta.
[SerializeField] int x;
void OnCollisionEnter(Collision collision)
{
x++;
}
Ako želimo da se to desi svaki put kada neki objekt određenog imena takne objekt na kojem je skripta samo napišemo collision.gameObject.name u if.
[SerializeField] int x;
void OnCollisionEnter(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s imenom "igrac" takne objekt na kojem je skripta.
if (collision.gameObject.name == "igrac")
{
x++;
}
}
Ako želimo da se to desi svaki put kada neki objekt određenog taga takne objekt na kojem je skripta samo napišemo collision.gameObject.CompareTag u if.
[SerializeField] int x;
void OnCollisionEnter(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s tagom "igrac" takne objekt na kojem je skripta.
if (collision.gameObject.CompareTag("igrac"))
{
x++;
}
}
Uz pomoć metode OnCollisionExit možemo provjeriti je li neki objekt prestao dirati objekt na kojem je skripta.
U sljedećem primjeru ćemo povećati x za 1 svaki put kada kada neki objekt prestane dirati objekt na kojem je skripta.
[SerializeField] int x;
void OnCollisionExit(Collision collision)
{
x++;
}
Ako želimo da se to desi svaki put kada neki objekt određenog imena prestane dirati objekt na kojem je skripta samo napišemo collision.gameObject.name u if.
[SerializeField] int x;
void OnCollisionExit(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s imenom "igrac" prestane dirati objekt na kojem je skripta.
if (collision.gameObject.name == "igrac")
{
x++;
}
}
Ako želimo da se to desi svaki put kada neki objekt određenog taga prestane dirati objekt na kojem je skripta samo napišemo collision.gameObject.CompareTag u if.
[SerializeField] int x;
void OnCollisionExit(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s tagom "igrac" prestane dirati objekt na kojem je skripta.
if (collision.gameObject.CompareTag("igrac"))
{
x++;
}
}
Uz pomoć metode OnCollisionStay možemo provjeriti dira li neki objekt drugi objekt na kojem je skripta.
U sljedećem primjeru ćemo povećati x za 1 svaki put kada neki objekt dira objekt na kojem je skripta.
[SerializeField] int x;
void OnCollisionStay(Collision collision)
{
x++;
}
Ako želimo da se to desi svaki put kada neki objekt određenog imena dira objekt na kojem je skripta samo napišemo collision.gameObject.name u if.
[SerializeField] int x;
void OnCollisionStay(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s imenom "igrac" dira objekt na kojem je skripta.
if (collision.gameObject.name == "igrac")
{
x++;
}
}
Ako želimo da se to desi svaki put kada neki objekt određenog taga dira objekt na kojem je skripta samo napišemo collision.gameObject.CompareTag u if.
[SerializeField] int x;
void OnCollisionStay(Collision collision)
{
//x će se povečati za 1 svaki put kada neki objekt s tagom "igrac" dira objekt na kojem je skripta.
if (collision.gameObject.CompareTag("igrac"))
{
x++;
}
}