친절한효자손 취미생활

[유니티기초] 유니티강좌 - Trigger(트리거)를 활용하여 엘레베이터 움직이기



유니티 시간에 배웠던건데 혹시 까먹을까봐서

일단 아는대로 급하게 작성을 하도록 하겠습니다.


우선, 이 포스팅은 유니티를 처음 접하시는 분들께서는 잘 모르실 수 있으니,

오른쪽에 유니티 카테고리에서 과거의 유니티관련 포스팅들을 먼저 보시고 접하시면

조금 더 이해가 쉬울 것입니다.




이 강좌는...제 개인 복습용으로 초점이 맞춰져 있기 때문에, 다소 설명이 부족할 수 있습니다.

이점 양해 부탁드리겠습니다 ㅠ_ㅠ


최대한 설명은 해 놓을것입니다.

부디 이 글이 도움이 되기를 바라는 간절한 마음으로 말이지요.





우선, 엘레베이터의 모델링 파일은 구글링을 통해서 찾고,

기왕이면 애니메이션까지 같이 들어있는 FBX 파일이 좋습니다.

애니메이션이래봐야 위~아래~ 위위아래~ 움직이는 것이 전부죠.


보통은, FBX파일안에는 애니메이션파일이 같이 들어 있기도 하지만,

만약 없다면, 3D맥스에서 애니메이션을 적용시켜 주면 됩니다.


왼쪽에 ElevatorRoot 는 빈 오브젝트에 Box Collider 를 만들었습니다.

이 박스콜리더의 역할은 플레이어가 이 지역에 들어오면, 엘리베이터가 아래로 내려오도록 해주는 역할을 합니다.

따라서, Is Trigger 에 체크가 되어 있어야 합니다.


그리고 TriggerElevator 라는 스크립트를 넣어주었습니다.

자식 오브젝트로, ElevatorPlate / Elevator / bottom / left / right / back 이 있습니다.





TriggerElevator 스크립트의 내용입니다.





ElevatorPlate 마찬가지로, 빈 오브젝트 입니다. 여기에 박스콜리더 를 적용했구요,

이 충돌체 역할은, 엘리베이터 안에 배치되어 있으며, 플레이어가 들어오면 엘리베이터가 위로 상승을 하게 됩니다.

마찬가지로, Is Trigger 에 체크가 되어 있어야 합니다.





TriggerInElevator 의 스크립트 내용입니다.





Elevator 는 FBX 모델링 이구요, 엘레베이터 입니다.

애니메이션은 말 그대로 위로 갔다 아래로 갔다 하는 동작이구요,

그 아래의 bottom, left, right, back 은 엘레베이터를 통과 못하게 일종의 벽을 만들어 준 것입니다.

각각 빈 오브젝트에 박스콜리더(충돌체) 를 만든 것이며, 이것은 is Trigger 체크를 풀어줍니다.

그래야 플레이어가 통과를 못하게 벽 역할을 하게 됩니다.





박스콜리더는 이렇게 만들어 주는 것이구요~





아까 말씀드렸던, 플레이어가 엘레베이터 안에 도착하면, 올라가는 충돌체를 크기와 위치 조절을 해주는 과정입니다.





TriggerInElevator 스크립트를 저렇게 드래그해서 넣어줍니다.





그리고, ElevatorPlate 에 Ani 변수에 저 움직이는 동작스크립트를 넣어줍니다.





아까 말씀드렸던 벽 역할을 하는 충돌체 입니다.





Is Trigger 체크를 풀어야 통과를 못합니다.



자, 오늘의 유니티수업은 여기까지 입니다.

요새 언리얼 쪽에 더 집중을 하다보니;;; 유니티를 살짝 소홀히 하게 되고 있습니다.

하지만, 아주 관심을 끊은 것이 아니니~ 항상 새로운 것을 배우게 되면 그때그때 포스팅을 할 수 있도록 하겠습니다.



공유하기

facebook twitter kakaoTalk kakaostory naver band