유니티에서 물리현상과 충돌을 부여하는 방법을 배우고
실습을 통해 복습하겠다.
물리적 특성(질량 중력 속도 힘)을 적용
인스펙터 내 항목이 각각 어떤 용도로 쓰이는 지 알아둬야겠다.

오브젝트의 충돌 영역(범위) 정의
체크 시 물리 충돌은 없이 트리거 이벤트만 발생
Rigidbody와 함께 사용 가능
Collider + Rigidbody가 서로 맞닿으면 발생
void OnCollisionEnter(Collider other)
{
Debug.Log("충돌 시작")
}
OnCollisionStay 충돌 지속 중
OnCollisionExit 충돌 끝
Collider 객체를 통해 충돌상대, 접점(point), 힘(force) 확인 가능
Is Trigger 체크 시 발생
OnTriggerEnter, Stay, Exit
예시) 소닉 등 코인 획득
마리오 버섯 획득
Rigidbody를 지닌 객체와만 상호작용
다른 함수나 메서드에 인자로 전달되어, 특정 시점에 호출되는 함수
원하는 충돌 결과가 일어나지 않을 때 체크리스트로 활용하자.

오늘 배운 내용을 통해
충돌 처리를 통해 총알(Bullet)과 적(Enemy)을 제거하는 기능을 만들어 보겠다.
일단 Bullet.cs에 OnTriggerEnter 설정

일단 총알 제거부터 해보겠다 결과는?

총알 먹방 시작

이상 없음

마찬가지로 이상 무
위 2개로 안돼서 다시 불릿으로 이동

컴퍼넌트 가져올 주체를 부모로 변경하고 테스트 시작

제대로 제거된다.

부모(Empty) 자체에 피격 시 제거 스크립트를 넣어놔서 그런 듯.
충돌간 주체를 확실히 파악하자.
적 충돌 시 제거는 완성했으니
네트 충돌 시 삭제도 확인하겠다

동일하게 OnTriggerEnter 사용

문제 없이 제거 완료
에너미를 플레이어 방향으로 전진하게 만들고
Player, net 충돌 시 제거
(나중에 Player 충돌 시, Player 체력 깎는 로직 추가)

Enemy에 리짓바디 추가, IsTrigger 체크하여 충돌 시 제거까지 구현
Enemy - Player, Bullet, Net 충돌 시 제거
Bullet - Enemy, Net 충돌 시 제거

총 결과물

OnCollision 도 사용해보는 게 좋을 거 같다.
현재 무브 구현도 좌표이동 말고 다른 방식도 고민해보자.