SlideShare a Scribd company logo
UNITY COOKBOOK
SHOT BY. INS
PART 12
네비게이션과 디스플레이
미아를 찾아주세요
게임에서 사용하는 길 찾기 알고리즘은 그 수가 매우 다양하며 널리 쓰이는 편입니다.
물론 이런 알고리즘의 논리와 난이도는 매우 복잡하고 구현하기가 까다로워서 손쉽게 다가갈 수 없습니다.
하지만 이번에 배울 주제는 유니티에서 다룰 것이고 알고리즘 또한 기능화 되어있어서 간단하게 사용할 수 있습니다.
( 1 / 10 )
# A* # Dijkstra # DFS # BFS
네비게이션(Navigation) 활용 #1
‘Window’ 탭에서 ‘Navigation’을 클릭하게 되면 ‘Inspector View’ 옆 칸에 ‘Navigation’ 탭이 생긴 것을 확인할 수 있습니다.
‘Bake’탭을 눌러보면 객체의 대한 판정 정보를 수정할 수 있는데, 길을 찾는 객체의 정보에 따라서 길의 경로 또한
바뀌어 버립니다. 실제로 대상 객체의 사이즈 혹인 입맛대로 직접 커스텀마이징 하여 변경하는 것을 권장하는 편입니다.
( 2 / 10 )
반지름, 책정거리 (반경)
높이
길을 찾는 객체
기울기
단층 높이 (계단, 웅덩이 etc)
네비게이션(Navigation) 활용 #2
‘Cube’ 모양 객체를 ‘Navigation’이 찾을 수 있는 길로 만들어보겠습니다.
길로 판정 할 객체의 ‘Static’를 보시면 ‘Nacigation Static’ 이라는 매뉴얼이 보이는데 지정을 해주면 됩니다.
이 후 ‘Navigation View’에서 ‘Bake’를 누르면 위 사진처럼 파란 바닥재가 추가적으로 그려지는데
이를 ‘Navi Mesh’ 라고 부르고 해당 지점으로 이동할 수 있는 길로 판정되었다고 볼 수 있습니다.
( 3 / 10 )
# 생성 된 Navi Mesh
네비게이션(Navigation) 활용 #3
하지만 이 기능의 큰 문제점이 하나 있습니다.
‘Navi Mesh’가 생성 되었지만 ‘Bake’ 된 것이기 때문에 구워지고 난 후 해당 객체를 이동시켜도 ‘Navi Mesh’는 그대로 유지됩니다.
또 하나의 예제로 Navi Mesh가 구워진 다리 객체의 중심이 잘려 더 이상 이동을 못할 때에도 문제점이 생겨버리기도 합니다.
구태여 보이지 않는 ‘Navi Mesh’를 추가적으로 생성해 막을 수 있지만 이는 한계점이 존재합니다.
( 4 / 10 )
- Realtime 이 적용되지 않은 ‘Navi Mesh’는 한 번 구워질 때의 모습을 계속 유지한다 -
네비게이션(Navigation) 활용 #4
본격적으로 길 찾기를 위해 위 같은 지형을 배치하였습니다. 물론 배치에 들어간 모든 오브젝트는
‘Navigation’이 길로 인식해야 하기 때문에 모든 객체에 ‘Navigation Static’를 대입합니다.
이후 ‘Bake’를 해보시면 길을 찾는 객체의 정보를 토대로 전 지형에 ‘Navi Mesh’가 깔리는 것을 볼 수 있습니다.
( 5 / 10 )
네비게이션(Navigation) 활용 #5
본격적인 활용을 위해 위와 같은 스크립트를 작성해 봅시다.
전 편에서 우리가 배웠던 것과 다를 바가 없는데 ‘NavMeshAgent’ 컴포넌트를 받아 ‘SetDestination’ 함수로 해당 목표로
스스로 길을 찾아주게 하는 것이 끝입니다. 이후 카메라 이동까지 표현하기 위해 위 스크립트를 하나 더 제작합니다.
( 6 / 10 )
네비게이션(Navigation) 활용 #6
길을 찾을 캐릭터에 아까 보았던 ‘Nav Mesh Agent Component’를 추가하고 속도, 방향성, 가속도를 조정합니다.
그리고 만들었던 스크립트를 Add Component 합니다. 추가로 카메라에도 만들었던 스크립트를 부착합니다.
게임을 실행하고 ‘Navi Mesh’를 이용해 길을 찾는 플레이어를 볼 수 있습니다.
( 7 / 10 )
# 스스로 길을 찾아서 이동하는 플레이어
HUD 고찰 #1
HUD란 ‘Head-Up Display’의 준말로 3D 게임상에서의 추가적인 Text나 Sprite 등이 디스플레이화 되는 것을 말합니다.
원리는 게임을 비추는 카메라와, GUI를 비추는 평면 카메라를 Blending(혼합) 하여 저러한 디스플레이를 만들어냅니다.
이러한 테크닉은 여러 게임에서도 주로 활용되고 있습니다.
( 8 / 10 )
HUD 고찰 #2
새로운 객체를 생성하는데 ‘UI’ 탭에서 ‘Text’로 이동하게 되면 World Space 상의 ‘Canvas’와 우리가 선택한 ‘Text’가
계층구조로 들어가 있는 것을 확인할 수 있습니다.
‘Canvas’는 3D 공간 상에 들어가 있는 2차원 평면 카메라 이며 실제 게임에는 보이지 않으며, 텍스트나 저 공간안에
있는 물체만 게임 카메라와 혼합되어 보이게 됩니다.
( 9 / 10 )
# HUD를 표현하는 객체
HUD 고찰 #3
빈 오브젝트로 캐릭터에 붙일 축이 될 offset를 조정하고 그의 계층으로 말꼬리 ‘Image’와 ‘text’를 넣어줍니다.
이후 스크립트를 새로 만드는데 캐릭터(World Pos)의 위치와, 카메라(View Pos)의 변환 행렬을 통해
2차원 상에서 캐릭터 위치를 판별할 수 있습니다.
이상 네비게이션과 HUD에 대해서 알아보았습니다.
( 10 / 10 )
Thank You !

More Related Content

PPTX
Unity cookbook 14
PDF
브릿지 Unity3D 기초 스터디 1회
PDF
3D 게임 그래픽스의 이해
PDF
브릿지 Unity3D 기초 스터디 5회
PPTX
Unity cookbook 16
PPTX
유니티 Rpg게임배경 스타트업 첫번째자료
PDF
Unity 3d study #2
PPTX
디자이너를 위한 NGUI의 이해
Unity cookbook 14
브릿지 Unity3D 기초 스터디 1회
3D 게임 그래픽스의 이해
브릿지 Unity3D 기초 스터디 5회
Unity cookbook 16
유니티 Rpg게임배경 스타트업 첫번째자료
Unity 3d study #2
디자이너를 위한 NGUI의 이해

Similar to Unity cookbook 12 (14)

PPTX
Unity cookbook 2
PPTX
Recast Detour.pptx
PDF
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
PDF
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
PDF
Decentraland Software Development Kit(SDK) 2.0 버전
PDF
0425 꽃길만걷자 조
PDF
메타버스 서비스에 Android 개발자가 할 일이 있나요?
PDF
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
PDF
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
PDF
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
PDF
H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉
PDF
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
 
PPTX
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
PDF
Unity3D Developer Network Study Chapter.2
Unity cookbook 2
Recast Detour.pptx
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Aug 17th, 2023: Case Studies - Examining Gamification through Virtual/Augment...
Decentraland Software Development Kit(SDK) 2.0 버전
0425 꽃길만걷자 조
메타버스 서비스에 Android 개발자가 할 일이 있나요?
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
[QGIS] 수치지도를 이용한 DEM 생성과 지형분석
H3 2011 ios5 새로운 기능들의 프로젝트 적용 사례_ios팀_김윤봉
H3 2011 iOS5 새로운 기능들의 프로젝트 적용 사례
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Unity3D Developer Network Study Chapter.2
Ad

More from Jihun Soh (17)

PPTX
Unity cookbook 21
PPTX
Unity cookbook 20
PPTX
Unity cookbook 19
PPTX
Unity cookbook 18
PPTX
Unity cookbook 17
PPTX
Unity cookbook 15
PPTX
Unity cookbook 13
PPTX
Unity cookbook 11
PPTX
Unity cookbook 10
PPTX
Unity cookbook 9
PPTX
Unity cookbook 8
PPTX
Unity cookbook 7
PPTX
Unity cookbook 6
PPTX
Unity cookbook 5
PPTX
Unity cookbook 4
PPTX
Unity cookbook 3
PPTX
Unity cookbook 1
Unity cookbook 21
Unity cookbook 20
Unity cookbook 19
Unity cookbook 18
Unity cookbook 17
Unity cookbook 15
Unity cookbook 13
Unity cookbook 11
Unity cookbook 10
Unity cookbook 9
Unity cookbook 8
Unity cookbook 7
Unity cookbook 6
Unity cookbook 5
Unity cookbook 4
Unity cookbook 3
Unity cookbook 1
Ad

Unity cookbook 12

  • 1. UNITY COOKBOOK SHOT BY. INS PART 12 네비게이션과 디스플레이
  • 2. 미아를 찾아주세요 게임에서 사용하는 길 찾기 알고리즘은 그 수가 매우 다양하며 널리 쓰이는 편입니다. 물론 이런 알고리즘의 논리와 난이도는 매우 복잡하고 구현하기가 까다로워서 손쉽게 다가갈 수 없습니다. 하지만 이번에 배울 주제는 유니티에서 다룰 것이고 알고리즘 또한 기능화 되어있어서 간단하게 사용할 수 있습니다. ( 1 / 10 ) # A* # Dijkstra # DFS # BFS
  • 3. 네비게이션(Navigation) 활용 #1 ‘Window’ 탭에서 ‘Navigation’을 클릭하게 되면 ‘Inspector View’ 옆 칸에 ‘Navigation’ 탭이 생긴 것을 확인할 수 있습니다. ‘Bake’탭을 눌러보면 객체의 대한 판정 정보를 수정할 수 있는데, 길을 찾는 객체의 정보에 따라서 길의 경로 또한 바뀌어 버립니다. 실제로 대상 객체의 사이즈 혹인 입맛대로 직접 커스텀마이징 하여 변경하는 것을 권장하는 편입니다. ( 2 / 10 ) 반지름, 책정거리 (반경) 높이 길을 찾는 객체 기울기 단층 높이 (계단, 웅덩이 etc)
  • 4. 네비게이션(Navigation) 활용 #2 ‘Cube’ 모양 객체를 ‘Navigation’이 찾을 수 있는 길로 만들어보겠습니다. 길로 판정 할 객체의 ‘Static’를 보시면 ‘Nacigation Static’ 이라는 매뉴얼이 보이는데 지정을 해주면 됩니다. 이 후 ‘Navigation View’에서 ‘Bake’를 누르면 위 사진처럼 파란 바닥재가 추가적으로 그려지는데 이를 ‘Navi Mesh’ 라고 부르고 해당 지점으로 이동할 수 있는 길로 판정되었다고 볼 수 있습니다. ( 3 / 10 ) # 생성 된 Navi Mesh
  • 5. 네비게이션(Navigation) 활용 #3 하지만 이 기능의 큰 문제점이 하나 있습니다. ‘Navi Mesh’가 생성 되었지만 ‘Bake’ 된 것이기 때문에 구워지고 난 후 해당 객체를 이동시켜도 ‘Navi Mesh’는 그대로 유지됩니다. 또 하나의 예제로 Navi Mesh가 구워진 다리 객체의 중심이 잘려 더 이상 이동을 못할 때에도 문제점이 생겨버리기도 합니다. 구태여 보이지 않는 ‘Navi Mesh’를 추가적으로 생성해 막을 수 있지만 이는 한계점이 존재합니다. ( 4 / 10 ) - Realtime 이 적용되지 않은 ‘Navi Mesh’는 한 번 구워질 때의 모습을 계속 유지한다 -
  • 6. 네비게이션(Navigation) 활용 #4 본격적으로 길 찾기를 위해 위 같은 지형을 배치하였습니다. 물론 배치에 들어간 모든 오브젝트는 ‘Navigation’이 길로 인식해야 하기 때문에 모든 객체에 ‘Navigation Static’를 대입합니다. 이후 ‘Bake’를 해보시면 길을 찾는 객체의 정보를 토대로 전 지형에 ‘Navi Mesh’가 깔리는 것을 볼 수 있습니다. ( 5 / 10 )
  • 7. 네비게이션(Navigation) 활용 #5 본격적인 활용을 위해 위와 같은 스크립트를 작성해 봅시다. 전 편에서 우리가 배웠던 것과 다를 바가 없는데 ‘NavMeshAgent’ 컴포넌트를 받아 ‘SetDestination’ 함수로 해당 목표로 스스로 길을 찾아주게 하는 것이 끝입니다. 이후 카메라 이동까지 표현하기 위해 위 스크립트를 하나 더 제작합니다. ( 6 / 10 )
  • 8. 네비게이션(Navigation) 활용 #6 길을 찾을 캐릭터에 아까 보았던 ‘Nav Mesh Agent Component’를 추가하고 속도, 방향성, 가속도를 조정합니다. 그리고 만들었던 스크립트를 Add Component 합니다. 추가로 카메라에도 만들었던 스크립트를 부착합니다. 게임을 실행하고 ‘Navi Mesh’를 이용해 길을 찾는 플레이어를 볼 수 있습니다. ( 7 / 10 ) # 스스로 길을 찾아서 이동하는 플레이어
  • 9. HUD 고찰 #1 HUD란 ‘Head-Up Display’의 준말로 3D 게임상에서의 추가적인 Text나 Sprite 등이 디스플레이화 되는 것을 말합니다. 원리는 게임을 비추는 카메라와, GUI를 비추는 평면 카메라를 Blending(혼합) 하여 저러한 디스플레이를 만들어냅니다. 이러한 테크닉은 여러 게임에서도 주로 활용되고 있습니다. ( 8 / 10 )
  • 10. HUD 고찰 #2 새로운 객체를 생성하는데 ‘UI’ 탭에서 ‘Text’로 이동하게 되면 World Space 상의 ‘Canvas’와 우리가 선택한 ‘Text’가 계층구조로 들어가 있는 것을 확인할 수 있습니다. ‘Canvas’는 3D 공간 상에 들어가 있는 2차원 평면 카메라 이며 실제 게임에는 보이지 않으며, 텍스트나 저 공간안에 있는 물체만 게임 카메라와 혼합되어 보이게 됩니다. ( 9 / 10 ) # HUD를 표현하는 객체
  • 11. HUD 고찰 #3 빈 오브젝트로 캐릭터에 붙일 축이 될 offset를 조정하고 그의 계층으로 말꼬리 ‘Image’와 ‘text’를 넣어줍니다. 이후 스크립트를 새로 만드는데 캐릭터(World Pos)의 위치와, 카메라(View Pos)의 변환 행렬을 통해 2차원 상에서 캐릭터 위치를 판별할 수 있습니다. 이상 네비게이션과 HUD에 대해서 알아보았습니다. ( 10 / 10 )