-
Collision과 Trigger유니티 2022. 2. 3. 18:06
1. Collision vs Collider
Collider는 Collider끼리의 충돌을 검사하고,
Collision은 물리적인 충돌을 검사한다.
좀 더 단순하게 생각하면
Collider에 Is Trigger가 켜져있으면 Collider로 충돌이 일어나고
만약 활성화가 안되어있으면 Rigidbody를 이용해서 물리적인 충돌이 일어났는지를 검사해서 Collision으로 충돌이 일어난다.
정리하자면
Collision충돌이 일어나기 위해서는
1) Rigidbody컴포넌트가 있어야한다.( Is Kinematic : off )
2) 나한테 Collider가 있어야한다. ( Is Trigger : off)
3) 상대한테 Collider가 있어야한다( Is Trigger : off)
Collider충돌이 일어나기 위해서는
1) 나한테 Collider가 있어야한다. (Is Trigger : on)
2) 상데한테 Collider가 있어야한다. (Is Trigger : on)
다시 처음의 말을보면 Collider의 충돌과 물리적인 충돌의 차이를 알 수 있을 것이다.
2. Trigger(트리거)
트리거 관련함수는 Collider와 Collsion에 대해 충돌여부를 확인하여 함수를 실행시킨다.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class testCollision : MonoBehaviour { private void OnCollisionEnter(Collision collision) { Debug.Log("Collisinon 충돌!"); } private void OnTriggerEnter(Collider other) { Debug.Log("Collider 충돌!"); } }
기본적으로
OnCollisionEnter, OnCollisionStay, OnCollisionExit
OnColliderEnter, OnColliderStay, OnColliderExit
위에처럼 함수가 각각 3개씩 제공되는데
Enter는 충돌하는 순간 1번 함수를 호출한다.
Stay는 충돌하고 있는 동안 함수를 계속 호출한다.
Exit는 충돌이 발생하고 두 객체가 떨어지는 순간 함수를 호출한다.
1번에서도 설명되어있지만 Collider를 호출하려면 Is Trigger를 체크하는 것을 꼭 기억하자!
'유니티' 카테고리의 다른 글
레이어(Layer) (0) 2022.02.04 Raycasting(레이캐스팅) with 유닛 클릭 (0) 2022.02.04 RigidBody와 Collider (0) 2022.02.03 Resource Manager (0) 2022.02.03 프리펩(Prefab) (0) 2022.02.03