C# Unity UI Unity C#
Početna stranica
Polazna lekcija
Prava pristupa
Time
GameObject
Destroy i SetActive
Mathf
Input
SceneManagement
UI programiranje
Audio source
Vektori
Kvaternion
Transform
Instantiate
RigidBody
OnTrigger
OnCollision
RayCast
PlayerPref

OnCollision

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.


OnCollisionEnter

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.

Primjer:


[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.

Primjer:


[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.

Primjer:


[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++;
    }   
}
            


OnCollisionExit

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.

Primjer:


[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.

Primjer:


[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.

Primjer:


[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++;
    }   
}
            


OnCollisionStay

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.

Primjer:


[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.

Primjer:


[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.

Primjer:


[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++;
    }   
}
            


Prijašnje

Sljedeće