[TIL-260119] 물리, 충돌처리

데비·2026년 1월 20일

본과정

목록 보기
35/64

오늘 배운 내용

- 물리

- 충돌처리


물리

- Rigidbody

  • 리짓바디 컴포넌트는 게임 오브젝트에 물리엔진을 적용하는 컴포넌트이다.
  • 물체의 질량, 공기저항, 중력에 대한 연산과 기본 지원 함수를 사용해 보다 현실적인 물리처리가 가능하다.

- rigidbody에서 많이 사용되는 함수와 프로퍼티

  1. AddForce(x,y,z)
    • 매개변수로 입력되는 x,y,z축 방향으로 물리적인 힘을 가한다.
    • 입력이 반복될수록 적용되는 힘이 누적된다.
  2. AddTorque()
    • 매개변수로 입력되는 축의 물리적인 회전력을 더한다.
  3. Velocity
    • 게임 오브젝트에 가해지고있는 물리력이다.
  4. angularVelocity
    • 게임 오브젝트에 가해지고 있는 회전력이다.

충돌처리

  • 충돌 처리는 Rigidbody와 Collider를 통해 이루어 진다.
  • 상황에 따라서 isTrigger 사용 여부를 선택하고 Collision과 Trigger로 사용한다.

- Collision

  • Collider 컴포넌트의 'isTriger'가 선택 해제 되어있어야한다.
  • 자신과 충돌 대상 모두에 Rigidbody 컴포넌트가 추가되어 있어야 하고, 두 Rigidbody중 하나는 IsKinematic이 체크 해제 되어 있어야한다.
  • 활성화 된 오브젝트간 충돌처리에 사용한다.

- Trigger

  • Collider 컴포넌트의 'IsTrigger'가 선택되어 있어야 한다.
  • IsTrigger 선택시 해당 오브젝트는 물리적인 충돌이 진행되지 않고 통과한다.
  • 자신이나 충돌 대상중 하나에 Rigidbody 컴포넌트가 추가되어 있어야 한다.
  • 주로 특정 장소 도달 등의 상황에 사용된다.
OnCollisionEnter(Collision other)
OnTriggerEnter(Collider other) // Enter : 충돌이 실행될 때 1회 실행

OnCollisionStay(Collision other)
OnTriggerStay(Collider other) // Stay : 충돌이 유지되는 동안 반복적으로 실행

OnCollisionExit(Collision other)
OnTriggerExit(Collider other) // Exit : 충돌이 종료될 때(벗어나는 순간) 1회 실행

Layer

  • Layer는 많은 오브젝트를 그룹으로 묶어 계층 단위로 관리하는 기능이다.
  • tag와 사용법은 비슷하지만, 여러 오브젝트를 묶어서 기능적으로 관리할 수 있기 때문에 물리/충돌처리에 유용하다.

0개의 댓글