본문 바로가기
유니티 공부/Unity

Unity - Collider,Collision,Trigger 정리

by 코딩하는 돼징 2023. 2. 12.
반응형

1. Material

빛이 반사될때 어떤 식으로 반사되는지 하는 재질

만든 다음에 여기다 넣기


2. Collider

Collider가 있다고 해서 물리적 처리를 바로 할 수 있는 것이 아니다. 물리적 처리를 할 수 있는 Rigidbody 컴포넌트를 추가 해야 한다.

Mesh를 충돌 기준으로 하면 매우 복잡하므로 다양한 모양의 Collider를 Mesh를 감싸도록 해서 충돌 처리를 대신한다. Collider 영역 안에 오브젝트가 닿거나 들어오면 충돌한 것으로 인식 된다.

Collider 기준으로 물리적인 충돌 처리를 해주기 때문에 Rigidbody 컴포넌트를 붙여도 Collider가 없는 오브젝트라면 물리적 충돌 처리가 되지 않고 뚫고 지나가는 등등 이런 현상이 발생된다.


3. Collision

isKienmatic -> 물리적 영향이 rigidbody 영향을 줄지 말지 결정 켜지면 물리 영향 안받음


OnCollisionEnter

private void OnCollisionEnter(Collision collision)
    {
    	Debug.Log("Collision!");
    }

Collision 뜨는 조건

1. 나 혹은 상대한테 RigidBody가 있어야 한다.(IsKinematic : Off)

2. 나한테 Collider가 있어야 한다.(IsTrigger : Off)

3. 상대한테 Collider가 있어야 한다.(IsTrigger : Off)


private void OnCollisionEnter(Collision collision)
    {
        Debug.Log($"Collision @ {collision.gameObject.name} !");
    }

내가 Kinemtaic이 켜져있는 경우에도 상대방이 Rigidbody Collider이면 충돌 가능

 

사용 예시)

OnCollisionEnter -> 총알이 빵 해서 사용자한테 타격을 하고 사용자 맞은 부위가 Collision안으로 들어온지 확인한 다음 체력을 깎음


4. Trigger

물리랑은 전혀 상관없이 범위 안에만 들어왔는지 확인하고 싶은 것 


OnTriggerEnter

private void OnTriggerEnter(Collider other)
    {
    	Debug.Log($"Trigger@ {other.gameObject.name} !");
    }

Trigger 발생 조건

1. 둘 중 Collider가 있어야 한다.

2. 둘 중 하나는 isTrigger : On

3. 둘 중 하나는 RigidBody가 있어야 한다.

 

사용 예시)

칼을 휘둘렀는데 몬스터에 닿았는지 안닿았는지 확인만 할때 그냥 닿았는 지만 판단할 때

순간이동 장치 -> 유저가 어떤 지역으로 들어오면

 

 

 

 

 

 

참고 :  본 내용은 MMORPG  PART3 강의를 수강하여 작성하였습니다.

https://www.inflearn.com/course/mmorpg-%EC%9C%A0%EB%8B%88%ED%8B%B0/dashboard

 

 

 

 

반응형

댓글