Unity로 작업을 할때 충돌처리를 하기 위해서 많이 쓰던 메서드이다.
하지만, 수업을 듣는 도중 Unity 패키지의 자동완성으로 나오는 충돌처리 메서드의 인자값의 타입이 다르다는 말을 듣고나서 찾아보니 진짜 달랐다.
그 둘의 차이점을 알고싶어 따로 알아보았다.
<OnCollison~(Collison )>
using UnityEngine;
private void OnCollisionEnter(Collision collision)
{
}
OnCollison~()메서드는 두개의 물체가 충돌 할때 충돌 지점,충돌한 물체,물리적 힘 등의 정보를 처리해야된다.
Collsion 객체는 충돌관 관련된 위의 정보를 담고 있기에 해당 타입을 사용하는 것이다.
<OnTrigger~(Collider )>
using UnityEngine;
private void OnTriggerEnter(Collider other)
{
}
OnTrigger()는 객체들이 충돌 했을때 물리적 충돌은 발생하지 않고 , Collider로 들어온 객체의 Data를 인자값으로 들고온다. 즉 쉽게 말하기 위해 충돌이라고 하는거지 해당 트리거 영역에 객체가 들어왔을때 동작하는 메서드인것이다.
하지만 물리동작을 하지 않는다고 Rigidbody를 빼놓으면 안된다.
(움직이는 쪽이 물리 시뮬레이션을 하면서 충돌체크를 하기 때문)
결론 : OnCollison() 메서드와 OnTrigger()메서드의 자동완성 인자값이 다르기에 실제로 사용할때 주의하여 사용하자
'Unity' 카테고리의 다른 글
Unity :: StringToHash 메서드 사용하기(애니메이터 컨트롤러) (0) | 2024.10.14 |
---|---|
Unity :: 스크립트에서 InputSystem을 사용하기 위해 InputActionAsset을 호출시 주의할 점 (0) | 2024.10.10 |
Unity :: ScriptableObject(스크립타블오브젝트) (0) | 2024.10.09 |
Unity :: 오일러각 vs 쿼터니언 , 쿼터니언과 벡터 곱셈 (0) | 2024.10.08 |
Unity :: Unity 입력처리, InputManager vs InputSystem (0) | 2024.10.07 |