2. 레이어와 태그 #1
레이어는 사물과 사물끼리의 구별 혹은 포토샵 레이어처럼 층을 구별할 때 쓰이는 기능입니다.
위 사진과 같이 레이어에 ‘A’, ‘B’를 적어 추가하고 벽과 공에 각각 추가한 레이어를 입혀봅니다.
설정 하시면 벽과 공 하나는 같은 ‘B’ 레이어이란 것을 알 수 있습니다.
( 2 / 9 )
B
A
3. 레이어와 태그 #2
이후 2개의 공에 Rigidbody(강체)를 Add Component합니다.
그리고 Project Setting -> Physics에서 위 사진대로 체크 버튼을 해제합니다.
버튼 행렬에서 가로 세로의 겹쳐있는 축을 잘 보면 B와 B의 레이어 물리 판정을 하지 않겠다는 개념입니다.
( 3 / 9 )
4. 레이어와 태그 #3
게임을 테스트 해보면 ‘B’ 레이어 끼리는 물리 판정이 되지 않는 것을 볼 수 있습니다.
이로써 레이어 끼리의 판정이나 식별 등으로 사용자가 원하는 방식으로 유용하게 사용할 수 있는 기능입니다.
( 4 / 9 )
# 물리 판정을 받지 않는다.
5. 레이어와 태그 #4
2페이지와 같이 ‘Tags & Layers‘로 들어가신 뒤 ‘Tag’탭에서 ‘wall’ 태그를 추가합니다.
이후 위와 같이 노란 장애물을 여러 개를 만들고 태그는 ‘wall’로 지정합니다.
그리고, 전에 설정한 Layer는 모드 Default로 바꿔줍니다.
( 5 / 9 )
# 태그 설정
6. 레이어와 태그 #5
스크립트를 하나 만들고 위와 같은 코드를 적어봅시다.
전에 설명한 콜백 함수에 내부 코드에 .tag만 붙고 달라진 점이 없습니다.
또 하나가 있다면 ‘Destroy’ 함수인데 첫 번쨰 인자로는 삭제할 대상을, 두 번째 인자로는 이후 수행시간을 기재합니다.
작성 뒤 공 2개에 붙여 실행하면 닿은 벽들은 1초 후 사라지는 것을 볼 수 있습니다.
이 또한 태그는 적이나 아군을 범용적으로 식별 할 때 사용하는 기능입니다.
( 6 / 9 )
𝑥 초 후에 사라지는지?
7. 탱크를 만들자 #1
전 편들을 복습 할겸 탱크의 구체적인 움직임을 만들어봅시다.
어셋 스토어에서 위와 같은 무료 어셋을 받고 Import 한 뒤에 탱크가 다닐만한 지형과
탱크 어셋에서 Prefab으로 만들어진 어셋을 Hierarchy 창에서 불러와 위 사진처럼 배치합니다.
( 7 / 9 )
8. 탱크를 만들자 #2
하이어라키 창 내부에 탱크 오브젝트를 살펴보면 여러 그래픽 파트가 분할되어 나누어 진 것을 볼 수 있는데
우리는 탱크의 움직임 뿐만 아니라 탱크의 터렛과 포신까지 같이 움직이게 만들 꺼라 위와 같은 계층을 만들어 줍니다.
도중 ‘poAxis’는 포신의 축이 엉뚱하게 회전되어, 빈 오브젝트를 삽입 뒤 잘 회전되는 쪽으로 배치하고 Child 합니다.
이후 ‘E’ 키를 눌러 터렛과 포신을 회전하면 좌우 혹은 위 아래 방향으로 잘 움직이는 것을 확인할 수 있습니다.
( 8 / 9 )
# 터렛 내부에 들어있는 포신
9. 탱크를 만들자 #3
새로운 스크립트를 만들어 위 내용과 같은 코드를 작성합니다.
그리고 탱크 오브젝트의 제일 최상층 객체에 직접 스크립트를 대입한 뒤 public로 받았던 변수들을
터렛과, 포신에 직접 연결 뒤 플레이 해 보면 탱크같은 움직임을 볼 수 있습니다.
이로써 이전에 배운 회전과 이동 벡터를 복습한 탱크를 만들어보았습니다.
( 9 / 9 )