전과 똑같이 폴더를 세팅해준다
Cube 오브젝트를 만든다음, Paddle이라고 이름을 지정합니다. 그리고 당연히 tansform을 리셋한 다음
scale 을 X = 10 , Z = 5만큼 해줍니다.
그리고 Position 의 Y를 -2 해줍니다
스피어를 만들고 Y를 3지정해준다음 머테리얼폴더를 만들고 머테리얼 하나 새로 만듭니다.
머테리얼 구분하는데 대표적인 두가지 방법이지만 난 개인적으로 언리얼을 했어서 위에가 편한거같다.
그리고 이 머테리얼들을 각각 Paddle , Ball에 적용 시켜주고 색깔을 바꿔주면
이런식으로 된다.
그리고
볼 오브젝트에 Rigidbody를 넣어주면 중료에 적용하게 된다.
(강체 물리처리)
그리고 Ball 스크립트를 만들어 준다음
Ball 오브젝트에 넣어주고
이렇게 하면 공이 충돌 일어날때마다 메세지가 발생한다
Enter : 충돌이 일어날때 한번
Exit : 뗄때 한번
Stay : 데일때 계속
트리거를 켜놓으면 바닥을 뚫고 지나간다
그리고 이 문구를 넣어주면 통과는 그대로 하지만 일단은 충돌을 인식한다.
그리고 이렇게 넣어주면 콜라이더를 기준으로 위 콜리전이랑 똑같이 작동한다.
충돌에 대한 어떠한 이벤트가 발생하는것을 트리거
콜리전은 행동에 대한 제한이나, 행동에 대한 이벤트가 발생하는건 콜리전
컴퓨터가 충돌을 처리하는 방식 (AABB(Axis Align Bounding Box)
! 박스가 무조건 축에 정렬되어 있어야함.
--
OBB(Oriented Bounding Box) 는 https://handhp1.tistory.com/6 여기 블로그에 완벽히 저장해놓으신분이 있어.. 이것을 보고 공부했다
두 원의 충돌방식:
원 :평면 위의 한 점에 이르는 거리가 일정한 평면 위의 점들의 집합
반지름 보다 두 원의 거리가 더 짧으면 충돌을 처리한다.
연산량이 AABB 방식에 비해 터무니없이 많기 때문에 비용이 비싸다.
====================================================================
Collision_Test 라는 씬을 새로 만들고
와 같이 Cube를 만들어주고 초기화한다.
그리고 Targer 의 Position.x 를 5 base 를 -5로 만들어준다
그리고 CollisionTest 스크립트를 만들어주고 Base에 붙여준다
그리고 구분을 위해서 머테리얼을 만들고 넣어줍니다.
그리고 타겟에 Rigidbody를 넣어주고 그래비티(중력)을 꺼주어도 충돌이 검출된다.
Base 가 콜리전 , Target 이 트리거
트리거 , 콜리전이 함께 충돌검출을 하면 무조건 트리거가 우선순위이다.
Cube_Base의 자식으로 Cube_arms를 만들어 준 다음 크기를 조절해준다.
자식이 부딪혀도 트리거가 검출이 된다.
이제 부모의 리지드바디를 없애고
자식에 넣어보면 어떻게될까 ?
정답은 충돌검출은 되지않는다.
즉 충돌검출을 써야한다면 반드시 스크립트가 있는곳에 리지드바디가 붙어있어야만 한다.
베이스, 베이스 자식은 리지드바디가 없고 타겟에 리지드바드를 가 있으면 자식이 충돌해도 검출이 안되지만 부모가 충돌하면 검출이 된다.
베이스에 리지드바드 넣어두고 중력을 꺼둔다음 자식에 트리거가 온 되어있으면 어떻게 될까?
(타겟의 트리거는 꺼둔 상태로)
정답은 팔이 닿으면 트리거가 검출이 되고, 베이스가 맞으면 콜리전이 검출이 된다.