본문 바로가기
유니티

B11 - 물리 충돌 이벤트

flyon 2024. 12. 30.
 

 

1. 기본 개념 복습

리지드바디(Rigidbody)와 콜라이더(Collider)로 물체 생성 및 이동 구현
키보드 입력으로 오브젝트를 움직이는 기능 복습

2. 충돌 이벤트와 매트리얼 속성 변경

목표: 충돌 시 오브젝트의 색상을 변경
방법:

  1. GetComponent로 MeshRenderer 가져오기
  2. MeshRenderer의 Material.color 속성 수정
  3. 충돌 시 색상이 즉시 변경되도록 로직 작성

3. 충돌 이벤트 함수 종류

물리 충돌 이벤트:
OnCollisionEnter: 충돌 시작 시 호출
OnCollisionStay: 충돌 지속 시 호출
OnCollisionExit: 충돌 종료 시 호출

4. 충돌 이벤트 구현

특정 조건에서 공의 색상 변경
충돌한 오브젝트 이름 확인 (Collision.gameObject.name)
이름이 특정 값일 때 색상 변경 로직 실행
Color와 Color32의 차이점
Color: float(01), Color32: int(0255)

5. 충돌 종료 시 이벤트 추가

충돌 종료 시 색상 복원
OnCollisionExit 함수 활용
충돌이 끝나면 색상을 초기 상태로 복구

6. 트리거 이벤트 개념

트리거 이벤트: 물리 충돌 없이 특정 영역에서 이벤트 발생
트리거 함수:
OnTriggerEnter: 트리거 진입 시 호출
OnTriggerStay: 트리거 영역 내 머무는 동안 호출
OnTriggerExit: 트리거 영역에서 나갈 때 호출
트리거 설정: 콜라이더의 IsTrigger 체크 활성화

7. 트리거 이벤트 활용 예제

목표: 트리거 영역에 들어가면 공이 위로 뜨는 효과 구현
방법:

  1. OnTriggerStay 함수 사용
  2. Rigidbody.AddForce(Vector3.up * 힘)으로 공 위로 이동
    주의: 트리거는 Collider 정보만 제공. 충돌 정보는 없음

 

profile
작심삼일을 무한으로 반복하는 지식세포 키우기
✏️ ⚙️