https://www.youtube.com/watch?v=sMIq2cr0L_s&list=LL&index=20
영상 초기 부분에 앞으로 배울 Skill들에 대한 설명이 있어 참고하고 이해하기 좋다.
VR 오큘러스와 Unity 연결하기, 어플 Oculus로 관리 가능하다.
Project Setting
360도 비디오를 다운로드 받은 후에 Project의 Scene에 영상을 드래그 앤 드롭 한다.
File -> Build Settings -> Android -> Player settings -> Player -> Player-Minimum API Level (Android 6.0) -> Graphic API -> Vulkan 제거
XR Plugin Management - Oculus -> Asset Store - Oculus Integration - Unity 열기
https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022
Oculus Integration을 내 에셋에 추가한다.
Package Manager - Oculus Integration -> Import 한후 Build Settings에서 Switch Platforom을 클릭한다.
OVRCameraRig를 Hierarchy창으로 이동 -> Main Camera 삭제
Shader : 물질의 표면의 느낌과 질감을 결정해주는 역할
Hierarchy 창에서 마우스 우클릭 -> 3D Object -> Shpere을 만든 후 Inspector 창에서 Add component를 누르고 Video Player을 검색해서 넣는다. 그리고 Video Clip에 다운받은 영상넣기
Sphere의 Transform Option
position x : 0 / y : 0 / z : 0
Rotation X : 0 / Y : 180 / Z : 0
Scale X : -1000 / Y : 1000 / Z : 1000
Camera(OVRCameraRig), Transform Option
position x : 0 / y : 0 / z : 0
Rotation X : 0 / Y : 0 / Z : 0
Scale X : 1 / Y : 1 / Z : 1
Project 창에서 마우스 우클릭 -> Create -> Material(InsideOut로 이름짓기) -> Sphere로 드로그 앤 드롭을 한다.
Project창에서 마우스 우클릭 -> Create -> Scene(360Menu로 이름짓기) -> 만든 360Menu의 마우스 우클릭해서 Open하기 -> Hierarchy 창에서 UI -> Button
Hierarchy 창에서 Canvas 클릭 -> Inspector 창의 Render Mode에서 World Space로 변경 ->
Transform 값 변경
PosX : -133.2 / PosY : 0 / PosZ : 265.2
Width : 50 / Height : 50
Pivot X : 0.5 / Y : 0.5
Rotation X : 0 / Y : -24.342 / Z : 0
Scale X : 1 / Y : 1 / Z : 1
Canvas 아래 Button Transform 값 변경
PosX : 0 / PosY : 0 / PosZ : 0
Width : 160 / Height : 100
Raycast : Interaction 방법 중 하나(Eye Gaze Selection 으로 이용 가능), Collider(충돌체)를 가지고 있는 객체에 반응
Project 창에서 마우스 우클릭 -> Create -> C# Script(raycast로 만들기)
raycast script를 OVRCameraRig -> TrackingSpace -> CenterEyeAncher에 드래그 앤 드롭한다. ????????
Button을 선택 후 Inspector에서 Add Component를 누른 후 Box Collider를 누른다. size의
X : 160, Y : 100, Z : 1
Play 버튼을 눌러 Game창에 가서 버튼을 누르면 Console 창의 "HIT" 메시지 확인 ????
Project 창에서 마우스 우클릭 후 Create -> C# Script를 만든다.(이름은 buttonManager)
코딩 후 Project창에서 처음 창이었던 SampleScene을 360Video로 이름을 rename한다.
Hierarchy 창에서 마우스 우클릭 -> Create Empty(ButtonManager로 이름을 짓고) C# Script(buttonManager)를 드래그 앤 드롭한다.
Button의 Inspector창에 On Click()을 추가한다. Runtime Only 밑에 Hierarchy의 ButtonManager을 드래그 앤 드롭한다. 이후 오른쪽 Function의 ButtonManager.toVideoScene으로 변경한다.
C# Script(raycast)를 열어 코딩한다.
Hierarchy창에 마우스 우클릭 -> UI -> Canvas를 만든다. Canvas의 Inspector창에 Rnder Mode를 World Space로 변경한다. 그리고 Hierarchy의 Canvas 하위 목록으로 Create -> UI -> Image를 만든다.
Cavas의 Transform Option은
PosX : 0 / PosY : 0 / PosZ : 0.5
Width : 10 / Height : 10
Image의 Transform Option은
PosX : 0 / PosY : 0 / PosZ : 0
Width : 0.05 / Height : 0.05
Image의 Inspector창의 Source Image에 Knob를 추가한다.
Hierarchy의 Image를 누르고 Ctrl + D를 눌러 복사한다. 복사한 Image를 눌러 Color를 변경한다.
Image Type은 Filled로 변경한 후 -> Fill Amount를 0으로 바꾼다.
Canvas를 Main camera의 CenterEyeAncher의 자식으로 넣는다. ???
Cavas의 Transform Option은
PosX : 0 / PosY : 0 / PosZ : 0.5
Width : 10 / Height : 10
C# Script(raycast)의 코드 추가
Hierarchy창의 Main Camera를 클릭한 후 Inspector창에 Add Component를 눌러 Raycast를 추가한다.
그리고 Image(1)을 Reticle에 드래그 앤 드롭한다.
File -> Build Setting -> Add Open Scene을 눌러 360 Video Scene을 드래그 앤 드롭한다.
Play mode -> Button을 응시하면 동영상 재생 확인 ????
360 Video Scene을 열고 Hierarchy창에 UI -> Canvas를 만들고 Inspector창의 Render Mode를 World Space로 변경한다.
Cavas의 Transform Option은
PosX : 0 / PosY : 0 / PosZ : 0
Width : 50 / Height : 50
그리고 Canvas 하위에 UI -> Button을 만들고 Game 화면을 보고 적절하게 배치한다.
Canvas의 Inspcetor에 Rect Transform 마우스 우클릭 -> Copy Component -> Play Mode 해제 -> Rect Transform 마우스 우클릭 -> Paste Component를 누른다. ???
다시 360Menu Scene으로 가서 Main Camera를 Asset으로 드래그 앤 드롭한다.
다시 360 Video Scene에 Asset의 Main Camera를 Hierarchy창으로 드래그 앤 드롭 한다. 기존의 OVRCameraRig 삭제
Hierarchy에 있는 Button의 Inspector창에 Add Component를 눌러 Box Collider를 만든 후 Size를 변경한다.
Size X : 160 Y : 30 Z : 1
C# Script(buttonManager)의 코드를 추가한다.
Hierarchy 창 마우스 우클릭 -> Create Empty -> buttonManager Script를 드래그 앤 드롭한다.
Button의 Inspector 창에 On Click()을 추가한다. Runtime Only 하단에 Hierarchy 창의 ButtonManager을 드래그 앤 드롭한다. 그리고 우측에 goln 함수를 설정한다.(buttonManager.goln)
ButtonManager의 Inspector창에
Sphere는 Hierarchy의 Sphere를 드래그 앤 드롭
Clip 01과 Clip 02에 각각 3D영상을 드래그 앤 드롭한다.