
오브젝트끼리 충돌하지 않게 하는법이다
Edit - Project Setting에 들어가면

Physics 2D에서 한눈에 봐도 설정할수 있게 되어있다. 체크되있으면 서로 작용한다는거고 체크가 풀려있으면 무시한다.
layer를 설정해놔야 이항목에서 확인할수잇다
Mass : 오브젝트의 질량 (Default 단위는 Kg)
Drag : 오브젝트가 Forses에 의해 움직일때 공기저항이 영향을 미치는 정도
Angular Drag : 오브젝트가 토크로 회전할 때 공기저항이 영향을 미치는 정도
Use Gravity : 활성화 상태면 오브젝트는 중력의 영향을 받는다.
Is Kinematic : 활성화 상태면 오브젝트는 물리 엔진으로 영향을 받지 않고 오로지 Transform으로만 조작된다.
Interpolate : RigidBody의 움직임을 부럽게 만들어준다.
Collision Detection : 빠르게 움직이는 오브젝트가 충돌감지없이 다른 오브젝트를 지나쳐 가는것을 방지한다.
Discrte : 씬에서 다른 모든 Collider에 대해 불연속 충돌검사를 사용한다.
기본값이며 CPU를 가장 적게 사용하는 옵션이다
물리엔진은 각 물리 시간 단계가 끝날 때만 충돌을 확인하여 빠르게 움직이는 물체가 충돌을 감지하지 않고 다른 물체를 통과하는 "터널링" 이라는 버그가 발생할수 있다.
Continuos : 동적 콜라이더에 불연속 충돌 검사 정적 콜라이더에 스위핑 기반 연속 충돌검사를 사용한다.
CPU를 더 사용하지만 "터널링" 현상을 방지할수 있다.
물리 엔진은 마지막 물리스텝에서 다음 타임스텍까지 미리 예측하고 해당 시간동안 객체가 무엇과 충돌하는지 확인한다.
그러나 정적 콜라이더에 대해서만 확인한다.
Continuous Dyamic : Continous와 비슷하지만 다른 Continuous Dyamic으로 설정된 다른 동적(움직이는) 콜라이더와의 충돌도 확인합니다. CPU를 가장 많이 사용한다.
Continous Speculative : 연속 동적과 유사한 수준의 정확도를 제공하지만
CPU 비용은 더 낮은 충돌 감지 예측적 접근 방식을 사용한다. 모든 객체가 현재 방향으로 계속 이동한다고 가정하고 이를 기반으로 잠재적인 충돌을 계산한다.
정적 콜라이더
충돌 콜백 함수
void OnCollisionEnter : 충돌이 시작했을 때
void OnCollisionStay : 충돌이 지속될 때
void OnCollisionExit : 충돌이 끝났을 때
void OnTriggerEnter : 충돌이 시작했을 때
void OnTriggerStay : 충돌이 지속될 때
void OnTriggerExit : 충돌이 끝났을 때
AddForce : (방향*힘 값, 힘의 종류)
rigid.AddForce(transform.right*speed, ForceMode2D.Force)
: 연속 + 질량무시 X 현실적인 물리현상을 나타낼때 많이 쓰임
rigid.AddForce(transform.right*speed, ForceMode2D.Impulse)
: 불연속 + 질량무시 X 짧은 순간의 힘, 충돌이나 폭발과 같은 것에 많이 쓰임
rigid.AddForce(transform.right*speed, ForceMode.VelocityChange)
: 불연속 + 질량무시 O 질량에 관계없이 속도를 바꿈
rigid.AddForce(transform.right*speed, ForceMode.Acceleration)
: 연속 + 질량무시 O 질량과 관계없이 가속, 오브젝트의 질량에 관계없이 가속을 주고싶을 때 사용