- 충돌할 오브젝트: Collider 컴포넌트 추가
- 움직이는 플레이어: Rigidbody 컴포넌트 추가
- Use Gravity: 체크 해제
- Freeze Position: Y축 체크
- Freeze Rotation: X, Y, Z축 모두 체크
- Collider 컴포넌트의 Is Trigger 속성 체크.
- 물리적 충돌 없이 통과하지만, 이벤트는 감지함.
- 사용 예시: 특정 지역 진입 시 이벤트 발생, 아이템 획득 등 비디오 게임에서 많이 사용.
- 콘솔 창의 Collapse 버튼으로 중복 메시지 축소 표시.
- 적용 예시: 점수(Score), 상태(State), 체력(Hit Point) 변경.
// ObjectHit.cs
using UnityEngine;
public class ObjectHit : MonoBehaviour
{
private void OnCollisionEnter(Collision other)
{
GetComponent<MeshRenderer>().material.color = Color.red;
}
}
### 예제 2: 충돌 횟수 계산
// Scorer.cs
using UnityEngine;
public class Scorer : MonoBehaviour
{
int hits = 0;
private void OnCollisionEnter(Collision other)
{
hits++;
Debug.Log("You've bumped into a thing this many times: " + hits);
}
}
## 캐싱 (Caching)
* 자주 사용하는 데이터나 정보를 메모리에 미리 저장하여 필요할 때 쉽게 접근하는 방식.
* 목적: GetComponent() 등의 반복 호출을 피해 성능을 최적화.
// 캐싱 예제
MeshRenderer myMeshRenderer;
void Start()
{
myMeshRenderer = GetComponent<MeshRenderer>();
}
void OnCollisionEnter(Collision other)
{
myMeshRenderer.material.color = Color.red;
}