컬라이더란, 충돌과 관련된 component이다. (큐브끼리 충돌했을 때, 서로 통과하지 않고, 부딪히도록)
Box collider : 수많은 collider 중 한 종류, 모양이 box형태
이렇게 collider를 형성해서(체크해서), 통과하지 않고, 부딪히도록 만들어준다. collider가 없으면, 부딪히지 않고 통과해버린다.
edit collider를 클릭하면,
이런 식으로, 초록색의 크기를 조절할 수 있다. 저 초록색 부분은 충돌하면, 통과되지 않고 부딪히게 되는 파트다. (초록색이 실제 물리적 몸이라고 생각하면됨. 흰색 큐브는 그저 보여지는 용)
edit collider를 이용하지 않고, size값을 직접 조절해줄 수도 있다.
center는 collider의 중심위치를 바꿔주도록 한다.
material(physics material)은 매질임. (탄성도 등 생각하면 됨)
create > physics material 선택해서, 위의 그림과 같이 physics material을 만들어준다.
이 new physics material을 box object에 추가해주면, plane과 만났을 때 통통 튕기는 것을 확인할 수 있다. (큐브에 탄성도가 부여됨)
만약 튕기다가 멈추는 것이 아니라, 계속 튕기는 것을 구현하고 싶다면, bounce combine을 average가 아니라 maximum으로 설정해주면 된다.
Friction은 마찰과 관련된 것임. dynamic friction값이 0이면, 얼음처럼 계속 미끄러지게 된다. 이때, firction combine이 average면, 밀리다가 결국 정지하게 되지만, 이걸 maximum으로 설정해주면, 계속 미끄러진다.
dynamic friction값이 1이면, 일반 바닥과 같다고 생각하면 됨.
다시 여기로 돌아와서, Is Trigger는 충돌을 감지'만'하는 애다. 감지만 하고 뚫리게 된다. (서로 부딪혀서 튕기지 않음)
(코드적으로 많이 활용된다.)
위와 같은 코드를 작성한 뒤 실행시켜보면,
(위의 코드에서 bounds. 을 제외하고는 모두 수정가능하다. bounds = read only의 속성을 가짐)
다음과 같이 출력되는 것을 확인할 수 있다.
- boundsCenter값은 (collider의 중심값 + object의 transform의 position값)과 일치한다.
- Extents값은 size의 절반 값이다.
[collider의 method]
col.Raycast(레이저 좌표, 그 레이저 좌표가 맞은 곳에 대한 정보, 사정거리): 레이저를 쏴서 맞은 곳에 대한 정보를 얻어온다.
--> 여기서의 col은 boxcollider에 대한 변수명
이런식으로 코드를 작성해주면, cube를 클릭했을 때 클릭한 방향으로 cube가 움직이게 된다.
[이외]
자주 활용되는 OnTrigger 시리즈이다. 각각에 대한 설명은 주석과 같다. OnTrigger는 유니티에서 IsTrigger가 체크되어있으면 실행된다.
이중에서, OnTriggerStay를 활용해 코드를 작성해보았다.
위와 같이 코드를 작성하여 실행하면,
다음과 같이 실행된다. 이는, box collider와 plane의 collider가 맞닿아 있기 때문에, plane이 계속 움직이는 것이다. 벗어난 순간, plane의 이동이 멈추게 되는데, OnTriggerStay의 경우, 머물고 있을 때만(맞닿아 있을 때만) 실행되기 때문이다.
만약 이런식으로 OnTrigger를 이용하면 빠져나간 순간, cube가 하늘로 올라가게 된다.
OnTrigger시리즈와 비슷하게, OnCollisionEnter, OnCollisionstay, OnCollisionExit이라는 함수도 있는데, 얘네는 isTrigger에 체크되었을 때 실행되는 것이 아니라, 실제 물리적 충돌이 일어났을 때 호출된다.
'졸업프로젝트' 카테고리의 다른 글
유니티 기본강좌 6._카메라 컴포넌트 (0) | 2021.11.24 |
---|---|
유니티 기본강좌_5. 메쉬 렌더러 (0) | 2021.11.24 |
유니티 기본강좌_3.리지드 바디 (0) | 2021.11.23 |
유니티 기본강좌_2. 트랜스폼 (0) | 2021.11.22 |
유니티 기본강좌 _ 1. 게임 object (0) | 2021.11.19 |