SlideShare a Scribd company logo
1 of 30
Download to read offline
유니티 DayDream 튜토리얼
@I_Jemin
i_jemin@hotmail.com
시작전 준비
시작전 준비
• 안드로이드 4.4 이상의 폰이 필요
• DayDream 의 경우 구글 Pixel 등 DayDream 지원폰이 필요

(안드로이드 7.0 최신 Nougat 이 필요)
• 유니티 DayDream 테그너컬 프리뷰 사이트에서 최신 인스톨러를 다운로드 및 설치
(5.4.2f2-GVR13)
• https://unity3d.com/partners/google/daydream#section-download
• 최신 Android SDK 와 Java JDK 가 설치되어 있고, 유니티 Preferences 에서 링크가
반드시 되야 합니다
• 안드로이드 API 최소 4.4 (킷캣) 설치가 되있어야 함
• 유니티를 켜고 테스트용 빈 프로젝트를 만들어 큐브를 하나 생성
• File > Build Settings 에서 Android 를 선택하고 SwitchPlatform 을 클릭
시작전 준비
• Build Settings > Player Settings > Other Setting:
Virtual Reality 를 체크하고 드롭다운에서
CardBoard 를 선택하여 추가
• 빌드 세팅을 안드로이드 4.4 이상으로 지정
• Identification 을 적절히 설정하고 Build and Run
을 하여 폰에서 테스트
• DayDream 의 추가 기능을 사용 하기 위해

Google VR SDK for Unity 다운로드
• https://developers.google.com/vr/unity/
download 로 이동
• DOWNLOAD SDK 버튼 클릭
심플 인터렉션 프로젝트
프로젝트 시작
• 새로운 씬을 생성하고 MainCamera 를 제거
• Plane 을 추가하여 지평선을 만듬
• GvrControllerMain 과 GvrViewerMain 을 씬에 추
가
• 이 둘은 Google VR 과 통신을 하는 주요 오브젝트
GvrController
GvrViwerMain
• GvrViewerMain (GoogleVR > Prefabs)
• HMD(헤드 마운트 디스플레이) 와 통신을 담당
• 시야 파라미터와 최신 헤드 트래킹 정보를 다룸
• 씬을 기기에 맞게 왜곡하여 랜더링
• GvrControllerMain (GoogleVR > Prefabs > Controller)
• DayDream Controller API 의 연동 시작점
• 유니티 인스펙터를 통해 컨트롤러 Arm 모델의 깊이와 회전을
지정 가능
유저 연동
• 물리적으로 유저와 연결된 오브젝트들, 메인 카메라,
컨트롤러 등 을 추가하려면…
• 빈 게임 오브젝트를 생성, Player 라고 이름을 지
정
• Y값을 1.0으로 하여 유저 머리가 땅에서 1 미터
위에.
• GvrRecticlePointer (GoogleVR > prefabs > UI)
• 화면의 중앙에 조준점을 띄움
• EventTrigger 컴포넌트와 Collider 컴포넌트를 가
진 오브젝트와 인터렉션을 함
• 인터렉션 가능한 오브젝트를 만날시 조준점이
변화함
• 씬에 미리 존재했던 MainCamera 는 지웠는지 다시
체크
• Player 오브젝트에게 마우스 오른쪽-카메라 추가
• GvrRecticlePointer 를 Player 자식으로 추가된
Camera의 자식으로 추가
• 추가된 카메라의 태그를 MainCamera 로 지정
• 카메라에 AddComponent >
GvrPointerPhysicsRaycaster 추가
• 하이라키에 마우스 오른쪽 > UI > EventSystem 추
가
• EventSystem 오브젝트에 붙어있는 Standard
Input Module 컴포넌트는 삭제
• EventSystem 에 AddComponent >
GvrPointerInputModule
GvrPointerInputModule 이 VR의 정중앙 조준점, 컨트롤러의 레이저 등
으로 일으키는 이벤트(PointerClick 등)을 EventSystem 을 통해 전파한다
이들은 EventTrigger 를 가지고 있는 오브젝트들이 수신한다
• 큐브에 EventTrigger 를 추가
• Add New Event Type 으로 이벤트를 듣게 한다
• Pointer Click - 조준점을 물체(의 콜라이더)에
놓고 클릭했을때
• Pointer Enter - 조준점이 물체에 진입할때
• Pointer Exit - 조준점이 물체를 나갈때
• EventTrigger 의 원하는 이벤트에 + 를 눌러 슬롯을 열기
• 열린 슬롯에 제어하고 싶은 오브젝트를 넣는다.

해당 오브젝트에서 호출가능한 함수를 지정 하면 인터
렉션 구현 됨
• 예) Cube 자신을 PointerClick 의 슬롯에 할당하고, 함
수를 GameObject.SetActive(false) 로 지정
• => 오브젝트를 VR로 쳐다보고 화면을 터치하면 오
브젝트가 꺼지는 기능이 구현됨
데이드림 프로젝트
(리모콘 사용)
프로젝트 시작하기
초반부는 심플 인터렉션 구현 프로젝트와 같음
프로젝트 시작
• 새로운 씬을 생성하고 MainCamera 를 제거
• Plane 을 추가하여 지평선을 만듬
• GvrControllerMain 과 GvrViewerMain 을 씬에 추
가
• 이 둘은 Google VR 과 통신을 하는 주요 오브젝트
GvrController
GvrViwerMain
• GvrViewerMain (GoogleVR > Prefabs)
• HMD(헤드 마운트 디스플레이) 와 통신을 담당
• 시야 파라미터와 최신 헤드 트래킹 정보를 다룸
• 씬을 기기에 맞게 왜곡하여 랜더링
• GvrControllerMain (GoogleVR > Prefabs > Controller)
• DayDream Controller API 의 연동 시작점
• 유니티 인스펙터를 통해 컨트롤러 Arm 모델의 깊이와 회전을
지정 가능
유저 연동
• 물리적으로 유저와 연결된 오브젝트들, 메인 카메라,
컨트롤러 등 을 추가하려면…
• 빈 게임 오브젝트를 생성, Player 라고 이름을 지
정
• Y값을 1.0으로 하여 유저 머리가 땅에서 1 미터
위에.
• GvrControllerPointer (GoogleVR > prefabs > UI
> GvrControllerPointer)
• SDK 에 내장된 프리팹
• 데이드림 리모콘을 사용하도록함
• 컨트롤러 모델 포함
• 레이저 포인터 포함
• Arm 모델 포함
• 씬에 미리 존재했던 MainCamera 는 지웠어야함
• GvrControllerPointer 를 Player 오브젝트에 자식으
로 추가
• Player 오브젝트에게 마우스 오른쪽-카메라 추가
• 추가된 카메라의 태그를 MainCamera 로 지정
• 카메라에 AddComponent >
GvrPointerPhysicsRaycaster 추가
리모콘 인터렉션 구현하기
• 큐브 오브젝트를 레이저 포인터로 가리켜 랜덤 재배
치 시기기
• 레이저 포인터로 Plane의 가고 싶은 곳을 지정해 순
간 이동
• 하이라키에 마우스 오른쪽 > UI > EventSystem 추가
• EventSystem 오브젝트에 붙어있는 Standard Input Module 컴포넌트
는 삭제
• EventSystem 에 AddComponent > GvrPointerInputMoudle
• 씬에 새로운 큐브를 추가, 카메라와 다른 장소에 적절히 배치
• 큐브에 EventTrigger 를 추가
• Add New Event Type 으로 이벤트를 듣게 함
• Pointer Click
• Pointer Enter
• Pointer Exit
• 새로운 마테리얼 두개를 생성
• 하나는 붉은색, 하나는 푸른색으로 지정 (Albedo 설정)
• 붉은 색은 레이저로 포인팅 했을때 색
• 푸른 색은 조준하지 않았을 때 색
• 큐브에 AddComponent - Teleport 를 추가
• EventTrigger 의 각 이벤트에 + 를 눌러 슬롯 추가
• PointerClick: Teleport.TeleportRandomly
• PointerEnter: Teleport.SetGazedAt (true 체크)
• PointerExit: Teleport.SEtGazedAt (true 체크 X)
• Teleport 스크립트를 열고 스크립트 초반부와 함수 추
가
• 초반부

using UnityEngine;

using UnityEngine.EventSystems; // ADD

using System.Collections;



[RequireComponent(typeof(Collider))]

public class Teleport : MonoBehaviour,
IGvrGazeResponder {



public GameObject player; //ADD
• 함수

public void TeleportTo(BaseEventData data)

{

PointerEventData pointerData

= data as PointerEventData;



Vector3 worldPos =

pointerData.pointerCurrentRaycast

.worldPosition;



Vector3 playerPos =

new Vector3 (worldPos.x,

player.transform.position.y,

worldPos.z);

player.transform.position = playerPos;

}
• Plane 오브젝트에 Teleport 와 EventTrigger 를 추
가
• Teleport 의 Player 슬롯에 Player 오브젝트 할당
• EventTrigger 에 PointerClick 이벤트를 추가
• + 버튼으로 슬롯을 추가하고 Teleport.TeleportTo
를 지정
DayDream 컨트롤러

에뮬레이팅
• 데이드림 컨트롤러 에뮬레이터를 폰에 설치
• https://developers.google.com/vr/daydream/
controller-emulator
• 폰을 컴퓨터와 같은 WiFi 네트워크에 연결
• 데이드림 컨트롤러를 켜고, 상단의 IP 주소를 메모

(예, 192.168.6.2224 )
• Scripts > Controller > Internal > Emulator 이동
• EmulatorConfig 스크립트 열기
• 하단에

public static readonly string WIFI_SERVER_IP =
"192.168.6.224";

의 IP 주소를 이전에 메모한 주소로 변경
• 카메라에 GvrPointerPhysicsRaycaster 를 추가
• GvrControllerMain 의 설정을 WiFi 로 지정
http://www.sdkboy.com/2016/12/building-daydream-controller-based-
app-scratch/
참고 자료 Reference

More Related Content

What's hot

이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnThe Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnGuerrilla
 
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012Woojin Do
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략태성 이
 
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and SecuritySeungmin Shin
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기Alan Kang
 
Tổng quan về quy trình Scrum
Tổng quan về quy trình ScrumTổng quan về quy trình Scrum
Tổng quan về quy trình ScrumKhangg Nguyen
 
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017devCAT Studio, NEXON
 
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈Donghun Lee
 
엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서재민 엄
 
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019Unity Technologies
 
Modular Level Design for Skyrim
Modular Level Design for SkyrimModular Level Design for Skyrim
Modular Level Design for SkyrimJoel Burgess
 
LOD and Culling Systems That Scale - Unite LA
LOD and Culling Systems That Scale  - Unite LALOD and Culling Systems That Scale  - Unite LA
LOD and Culling Systems That Scale - Unite LAUnity Technologies
 
게임업계에서 내가 하고 싶은 일 찾는 방법
게임업계에서 내가 하고 싶은 일 찾는 방법게임업계에서 내가 하고 싶은 일 찾는 방법
게임업계에서 내가 하고 싶은 일 찾는 방법Donghun Lee
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013영욱 오
 
Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Multiprocessor Game Loops: Lessons from Uncharted 2: Among ThievesMultiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Multiprocessor Game Loops: Lessons from Uncharted 2: Among ThievesNaughty Dog
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)Kay Kim
 
16.03.24 sos project 컨셉 기획서_남진우
16.03.24 sos project 컨셉 기획서_남진우16.03.24 sos project 컨셉 기획서_남진우
16.03.24 sos project 컨셉 기획서_남진우Nam Jinwoo
 
게임제작개론 8
게임제작개론 8게임제작개론 8
게임제작개론 8Seokmin No
 

What's hot (20)

이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero DawnThe Real-time Volumetric Cloudscapes of Horizon Zero Dawn
The Real-time Volumetric Cloudscapes of Horizon Zero Dawn
 
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
도우진&김영수, 게임잼 운영과 게이미피케이션, NDC2012
 
게임 기획자의 생존 전략
게임 기획자의 생존 전략게임 기획자의 생존 전략
게임 기획자의 생존 전략
 
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security[KGC 2012] Online Game Server Architecture Case Study Performance and Security
[KGC 2012] Online Game Server Architecture Case Study Performance and Security
 
GA로 게임 로그 분석하기
GA로 게임 로그 분석하기GA로 게임 로그 분석하기
GA로 게임 로그 분석하기
 
Tổng quan về quy trình Scrum
Tổng quan về quy trình ScrumTổng quan về quy trình Scrum
Tổng quan về quy trình Scrum
 
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
이승재, 일정대로 출시하기 왜 & 어떻게: 개발자를 위한 제작진행개론, NDC2017
 
레벨디자인 특강 이동훈
레벨디자인 특강 이동훈레벨디자인 특강 이동훈
레벨디자인 특강 이동훈
 
엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서엄재민 Nhn과제 신규 게임 컨셉 제안서
엄재민 Nhn과제 신규 게임 컨셉 제안서
 
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
Get moving: An overview of physics in DOTS – Unite Copenhagen 2019
 
Modular Level Design for Skyrim
Modular Level Design for SkyrimModular Level Design for Skyrim
Modular Level Design for Skyrim
 
LOD and Culling Systems That Scale - Unite LA
LOD and Culling Systems That Scale  - Unite LALOD and Culling Systems That Scale  - Unite LA
LOD and Culling Systems That Scale - Unite LA
 
게임업계에서 내가 하고 싶은 일 찾는 방법
게임업계에서 내가 하고 싶은 일 찾는 방법게임업계에서 내가 하고 싶은 일 찾는 방법
게임업계에서 내가 하고 싶은 일 찾는 방법
 
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
게임에서 흔히 쓰이는 최적화 전략 by 엄윤섭 @ 지스타 컨퍼런스 2013
 
Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Multiprocessor Game Loops: Lessons from Uncharted 2: Among ThievesMultiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
Multiprocessor Game Loops: Lessons from Uncharted 2: Among Thieves
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
카툰 렌더링
카툰 렌더링카툰 렌더링
카툰 렌더링
 
16.03.24 sos project 컨셉 기획서_남진우
16.03.24 sos project 컨셉 기획서_남진우16.03.24 sos project 컨셉 기획서_남진우
16.03.24 sos project 컨셉 기획서_남진우
 
게임제작개론 8
게임제작개론 8게임제작개론 8
게임제작개론 8
 

Viewers also liked

유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼Jemin Lee
 
Docspin 에셋에 대해
Docspin 에셋에 대해Docspin 에셋에 대해
Docspin 에셋에 대해현욱 김
 
유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료Je Lyoung Kim
 
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!태양 최
 
Make a shooting game using unity
Make a shooting game using unityMake a shooting game using unity
Make a shooting game using unityHyunwoo Kim
 
유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료Je Lyoung Kim
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신현욱 김
 
디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해Je Lyoung Kim
 
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기Yo-Chang Song
 
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작NAVER D2
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발GukHwan Ji
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴MinGeun Park
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기GukHwan Ji
 
Unity & VR (Unity Roadshow 2016)
Unity & VR (Unity Roadshow 2016)Unity & VR (Unity Roadshow 2016)
Unity & VR (Unity Roadshow 2016)ozlael ozlael
 

Viewers also liked (17)

유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼유니티 C# 기초 튜토리얼
유니티 C# 기초 튜토리얼
 
Docspin 에셋에 대해
Docspin 에셋에 대해Docspin 에셋에 대해
Docspin 에셋에 대해
 
유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료유니티 Rpg게임배경 스타트업 두번째 스터디자료
유니티 Rpg게임배경 스타트업 두번째 스터디자료
 
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!
중학생이라도 게임이 만들고싶어! -1- 유니티 바라보기!
 
Make a shooting game using unity
Make a shooting game using unityMake a shooting game using unity
Make a shooting game using unity
 
유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료유니티 Rpg게임배경 스타트업 첫번째자료
유니티 Rpg게임배경 스타트업 첫번째자료
 
유니티3D 그리고 웹통신
유니티3D 그리고 웹통신유니티3D 그리고 웹통신
유니티3D 그리고 웹통신
 
디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해디자이너를 위한 NGUI의 이해
디자이너를 위한 NGUI의 이해
 
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기PHP 와 MySQL을 이용한 게임 랭킹 구축하기
PHP 와 MySQL을 이용한 게임 랭킹 구축하기
 
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작
[E3]deview 2012 스마트폰 내장 센서를 이용한 체감형 게임제작
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
유니티로 2D게임개발
유니티로 2D게임개발유니티로 2D게임개발
유니티로 2D게임개발
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴게임 프레임워크의 아키텍쳐와 디자인 패턴
게임 프레임워크의 아키텍쳐와 디자인 패턴
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기
 
Unity & VR (Unity Roadshow 2016)
Unity & VR (Unity Roadshow 2016)Unity & VR (Unity Roadshow 2016)
Unity & VR (Unity Roadshow 2016)
 

Similar to 유니티 데이드림 (DayDream) 튜토리얼

Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복Sewon Ann
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)Changwon National University
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1진상 문
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)Sang Don Kim
 
Python on Android
Python on AndroidPython on Android
Python on Android용 최
 
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Changwon National University
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법Kiyoung Moon
 
브릿지 Unity3D 기초 스터디 4회
브릿지 Unity3D 기초 스터디 4회브릿지 Unity3D 기초 스터디 4회
브릿지 Unity3D 기초 스터디 4회BridgeGames
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Brandon Chung
 
App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비YoungHoKwak1
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)DONGSU KIM
 
Umg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation BoxUmg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation Box대영 노
 
브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회BridgeGames
 
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...강 민우
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016Jongwon Kim
 
2019 Naver Tech Concert Android - Camera2
2019 Naver Tech Concert Android - Camera22019 Naver Tech Concert Android - Camera2
2019 Naver Tech Concert Android - Camera2SooHwan Ok
 
Modularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleModularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleNAVER Engineering
 

Similar to 유니티 데이드림 (DayDream) 튜토리얼 (20)

Unity시작하기
Unity시작하기Unity시작하기
Unity시작하기
 
Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복
 
유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)유니티로 flappy brid 만들기(Unity 5.1)
유니티로 flappy brid 만들기(Unity 5.1)
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
 
Python on Android
Python on AndroidPython on Android
Python on Android
 
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)Flappy bird 만들기 세미나 자료(유니티 4.3버전)
Flappy bird 만들기 세미나 자료(유니티 4.3버전)
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
 
브릿지 Unity3D 기초 스터디 4회
브릿지 Unity3D 기초 스터디 4회브릿지 Unity3D 기초 스터디 4회
브릿지 Unity3D 기초 스터디 4회
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나
 
App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비App, VR 및 AR Unity 설정 준비
App, VR 및 AR Unity 설정 준비
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
Umg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation BoxUmg ,이벤트 바인딩, Invaidation Box
Umg ,이벤트 바인딩, Invaidation Box
 
브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회브릿지 Unity3D 기초 스터디 2회
브릿지 Unity3D 기초 스터디 2회
 
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...
[IGC2018] 오토데스크 홍상범 - 아티스트를 위한 Visual Scripting - MCG in 3dsMax, Blueprint in...
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016
 
2019 Naver Tech Concert Android - Camera2
2019 Naver Tech Concert Android - Camera22019 Naver Tech Concert Android - Camera2
2019 Naver Tech Concert Android - Camera2
 
Unity소개
Unity소개Unity소개
Unity소개
 
Modularization with Dynamic Feature Module
Modularization with Dynamic Feature ModuleModularization with Dynamic Feature Module
Modularization with Dynamic Feature Module
 

유니티 데이드림 (DayDream) 튜토리얼

  • 3. 시작전 준비 • 안드로이드 4.4 이상의 폰이 필요 • DayDream 의 경우 구글 Pixel 등 DayDream 지원폰이 필요
 (안드로이드 7.0 최신 Nougat 이 필요) • 유니티 DayDream 테그너컬 프리뷰 사이트에서 최신 인스톨러를 다운로드 및 설치 (5.4.2f2-GVR13) • https://unity3d.com/partners/google/daydream#section-download • 최신 Android SDK 와 Java JDK 가 설치되어 있고, 유니티 Preferences 에서 링크가 반드시 되야 합니다 • 안드로이드 API 최소 4.4 (킷캣) 설치가 되있어야 함 • 유니티를 켜고 테스트용 빈 프로젝트를 만들어 큐브를 하나 생성 • File > Build Settings 에서 Android 를 선택하고 SwitchPlatform 을 클릭
  • 4. 시작전 준비 • Build Settings > Player Settings > Other Setting: Virtual Reality 를 체크하고 드롭다운에서 CardBoard 를 선택하여 추가 • 빌드 세팅을 안드로이드 4.4 이상으로 지정 • Identification 을 적절히 설정하고 Build and Run 을 하여 폰에서 테스트
  • 5. • DayDream 의 추가 기능을 사용 하기 위해
 Google VR SDK for Unity 다운로드 • https://developers.google.com/vr/unity/ download 로 이동 • DOWNLOAD SDK 버튼 클릭
  • 7. 프로젝트 시작 • 새로운 씬을 생성하고 MainCamera 를 제거 • Plane 을 추가하여 지평선을 만듬 • GvrControllerMain 과 GvrViewerMain 을 씬에 추 가 • 이 둘은 Google VR 과 통신을 하는 주요 오브젝트
  • 8. GvrController GvrViwerMain • GvrViewerMain (GoogleVR > Prefabs) • HMD(헤드 마운트 디스플레이) 와 통신을 담당 • 시야 파라미터와 최신 헤드 트래킹 정보를 다룸 • 씬을 기기에 맞게 왜곡하여 랜더링 • GvrControllerMain (GoogleVR > Prefabs > Controller) • DayDream Controller API 의 연동 시작점 • 유니티 인스펙터를 통해 컨트롤러 Arm 모델의 깊이와 회전을 지정 가능
  • 9. 유저 연동 • 물리적으로 유저와 연결된 오브젝트들, 메인 카메라, 컨트롤러 등 을 추가하려면… • 빈 게임 오브젝트를 생성, Player 라고 이름을 지 정 • Y값을 1.0으로 하여 유저 머리가 땅에서 1 미터 위에.
  • 10. • GvrRecticlePointer (GoogleVR > prefabs > UI) • 화면의 중앙에 조준점을 띄움 • EventTrigger 컴포넌트와 Collider 컴포넌트를 가 진 오브젝트와 인터렉션을 함 • 인터렉션 가능한 오브젝트를 만날시 조준점이 변화함
  • 11. • 씬에 미리 존재했던 MainCamera 는 지웠는지 다시 체크 • Player 오브젝트에게 마우스 오른쪽-카메라 추가 • GvrRecticlePointer 를 Player 자식으로 추가된 Camera의 자식으로 추가 • 추가된 카메라의 태그를 MainCamera 로 지정 • 카메라에 AddComponent > GvrPointerPhysicsRaycaster 추가
  • 12. • 하이라키에 마우스 오른쪽 > UI > EventSystem 추 가 • EventSystem 오브젝트에 붙어있는 Standard Input Module 컴포넌트는 삭제 • EventSystem 에 AddComponent > GvrPointerInputModule GvrPointerInputModule 이 VR의 정중앙 조준점, 컨트롤러의 레이저 등 으로 일으키는 이벤트(PointerClick 등)을 EventSystem 을 통해 전파한다 이들은 EventTrigger 를 가지고 있는 오브젝트들이 수신한다
  • 13. • 큐브에 EventTrigger 를 추가 • Add New Event Type 으로 이벤트를 듣게 한다 • Pointer Click - 조준점을 물체(의 콜라이더)에 놓고 클릭했을때 • Pointer Enter - 조준점이 물체에 진입할때 • Pointer Exit - 조준점이 물체를 나갈때
  • 14. • EventTrigger 의 원하는 이벤트에 + 를 눌러 슬롯을 열기 • 열린 슬롯에 제어하고 싶은 오브젝트를 넣는다.
 해당 오브젝트에서 호출가능한 함수를 지정 하면 인터 렉션 구현 됨 • 예) Cube 자신을 PointerClick 의 슬롯에 할당하고, 함 수를 GameObject.SetActive(false) 로 지정 • => 오브젝트를 VR로 쳐다보고 화면을 터치하면 오 브젝트가 꺼지는 기능이 구현됨
  • 15. 데이드림 프로젝트 (리모콘 사용) 프로젝트 시작하기 초반부는 심플 인터렉션 구현 프로젝트와 같음
  • 16. 프로젝트 시작 • 새로운 씬을 생성하고 MainCamera 를 제거 • Plane 을 추가하여 지평선을 만듬 • GvrControllerMain 과 GvrViewerMain 을 씬에 추 가 • 이 둘은 Google VR 과 통신을 하는 주요 오브젝트
  • 17. GvrController GvrViwerMain • GvrViewerMain (GoogleVR > Prefabs) • HMD(헤드 마운트 디스플레이) 와 통신을 담당 • 시야 파라미터와 최신 헤드 트래킹 정보를 다룸 • 씬을 기기에 맞게 왜곡하여 랜더링 • GvrControllerMain (GoogleVR > Prefabs > Controller) • DayDream Controller API 의 연동 시작점 • 유니티 인스펙터를 통해 컨트롤러 Arm 모델의 깊이와 회전을 지정 가능
  • 18. 유저 연동 • 물리적으로 유저와 연결된 오브젝트들, 메인 카메라, 컨트롤러 등 을 추가하려면… • 빈 게임 오브젝트를 생성, Player 라고 이름을 지 정 • Y값을 1.0으로 하여 유저 머리가 땅에서 1 미터 위에.
  • 19. • GvrControllerPointer (GoogleVR > prefabs > UI > GvrControllerPointer) • SDK 에 내장된 프리팹 • 데이드림 리모콘을 사용하도록함 • 컨트롤러 모델 포함 • 레이저 포인터 포함 • Arm 모델 포함
  • 20. • 씬에 미리 존재했던 MainCamera 는 지웠어야함 • GvrControllerPointer 를 Player 오브젝트에 자식으 로 추가 • Player 오브젝트에게 마우스 오른쪽-카메라 추가 • 추가된 카메라의 태그를 MainCamera 로 지정 • 카메라에 AddComponent > GvrPointerPhysicsRaycaster 추가
  • 21. 리모콘 인터렉션 구현하기 • 큐브 오브젝트를 레이저 포인터로 가리켜 랜덤 재배 치 시기기 • 레이저 포인터로 Plane의 가고 싶은 곳을 지정해 순 간 이동
  • 22. • 하이라키에 마우스 오른쪽 > UI > EventSystem 추가 • EventSystem 오브젝트에 붙어있는 Standard Input Module 컴포넌트 는 삭제 • EventSystem 에 AddComponent > GvrPointerInputMoudle • 씬에 새로운 큐브를 추가, 카메라와 다른 장소에 적절히 배치 • 큐브에 EventTrigger 를 추가 • Add New Event Type 으로 이벤트를 듣게 함 • Pointer Click • Pointer Enter • Pointer Exit
  • 23. • 새로운 마테리얼 두개를 생성 • 하나는 붉은색, 하나는 푸른색으로 지정 (Albedo 설정) • 붉은 색은 레이저로 포인팅 했을때 색 • 푸른 색은 조준하지 않았을 때 색 • 큐브에 AddComponent - Teleport 를 추가 • EventTrigger 의 각 이벤트에 + 를 눌러 슬롯 추가 • PointerClick: Teleport.TeleportRandomly • PointerEnter: Teleport.SetGazedAt (true 체크) • PointerExit: Teleport.SEtGazedAt (true 체크 X)
  • 24. • Teleport 스크립트를 열고 스크립트 초반부와 함수 추 가 • 초반부
 using UnityEngine;
 using UnityEngine.EventSystems; // ADD
 using System.Collections;
 
 [RequireComponent(typeof(Collider))]
 public class Teleport : MonoBehaviour, IGvrGazeResponder {
 
 public GameObject player; //ADD
  • 25. • 함수
 public void TeleportTo(BaseEventData data)
 {
 PointerEventData pointerData
 = data as PointerEventData;
 
 Vector3 worldPos =
 pointerData.pointerCurrentRaycast
 .worldPosition;
 
 Vector3 playerPos =
 new Vector3 (worldPos.x,
 player.transform.position.y,
 worldPos.z);
 player.transform.position = playerPos;
 }
  • 26. • Plane 오브젝트에 Teleport 와 EventTrigger 를 추 가 • Teleport 의 Player 슬롯에 Player 오브젝트 할당 • EventTrigger 에 PointerClick 이벤트를 추가 • + 버튼으로 슬롯을 추가하고 Teleport.TeleportTo 를 지정
  • 28. • 데이드림 컨트롤러 에뮬레이터를 폰에 설치 • https://developers.google.com/vr/daydream/ controller-emulator • 폰을 컴퓨터와 같은 WiFi 네트워크에 연결 • 데이드림 컨트롤러를 켜고, 상단의 IP 주소를 메모
 (예, 192.168.6.2224 )
  • 29. • Scripts > Controller > Internal > Emulator 이동 • EmulatorConfig 스크립트 열기 • 하단에
 public static readonly string WIFI_SERVER_IP = "192.168.6.224";
 의 IP 주소를 이전에 메모한 주소로 변경 • 카메라에 GvrPointerPhysicsRaycaster 를 추가 • GvrControllerMain 의 설정을 WiFi 로 지정