Trigger의 정의:
Trigger의 장점:
Trigger의 특징:
IsTrigger 속성이 켜져 있어야 동작합니다.OnTriggerEnter, OnTriggerStay, OnTriggerExit 함수를 통해 처리됩니다.
Collider 필요:
IsTrigger 설정:
IsTrigger = true로 설정되어 있어야 합니다.Rigidbody 필요:
IsKinematic 설정 여부는 상관없습니다.OnTriggerEnter(Collider other)
other는 진입한 객체의 정보를 포함합니다.OnTriggerStay(Collider other)
OnTriggerExit(Collider other)
private void OnTriggerEnter(Collider other)
{
Debug.Log($"Trigger @ {other.gameObject.name})!");
}
OnTriggerEnter 함수:
Collider other:
other.gameObject: Trigger 범위에 들어온 객체의 GameObject.other.transform: 객체의 Transform 정보.Debug.Log(...):
Trigger @ Player)!가 출력됩니다.몬스터와 칼의 충돌 감지:
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Monster"))
{
Debug.Log("몬스터가 칼에 닿았습니다!");
other.gameObject.GetComponent<Monster>().TakeDamage(10);
}
}
TakeDamage() 함수를 호출하여 몬스터의 체력을 감소시킵니다.특정 공간에 들어갔을 때 텔레포트:
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
Debug.Log("플레이어가 텔레포트 영역에 진입했습니다!");
other.gameObject.transform.position = new Vector3(0, 10, 0); // 텔레포트
}
}
| 기능 | Collision | Trigger |
|---|---|---|
| 물리적 반응 | 실제 물리적 반응 (예: 튕김, 밀림) | 물리적 반응 없음 |
| 목적 | 물리적인 충돌 처리 | 범위 내 진입 여부 감지 |
| 필요 조건 | Rigidbody 필수, IsTrigger = false | Rigidbody 필수, IsTrigger = true |
| 사용 예시 | 충돌 기반 물리 연산 | 영역 감지, 논리적 처리 |
Trigger 이벤트가 발생할 수 있는 경우:
IsTrigger = true여야 함.테이블 이미지 분석:
장점:
활용 사례: