Unity 29

[Unity] Light Probe로 자연스러운 빛과 실시간 그림자 연출하기

자연스러운 빛과 실시간 그림자를 연출하는 것.. (처음 해보는 것이라 난관이 예상된다.) 이를 달성하려면 light probe를 사용해야 하는데, 이것에 대해 리서칭 및 공부를 해서 구현해보려고 한다. (따라서 참고하는 reference들이 괴장히 많을 것으로 예상된다. Reference는 항상 글 아래에 적어둔다.) A. Light Probe는 무엇인가? Light probe는 bake한 lighting map의 정보를 저장하여, runtime 때 이를 동적인 물체에 전달한다. 즉, scene에 light probe를 배치한 후에 light를 bake하면 그 light probe 주변의 lighting data가 미리 저장된다. 이렇게 저장된 lighting data는 runtime 때 동적인 오브젝트..

Unity/Dev 2023.01.18

[Unity] UI Scripting Automation (2)

이번엔 1편에 이어 Morphai 프로젝트에서 사용하는 menu UI를 자동화해보려고 한다. 거두절미하고 바로 시작하자. Menu UI는 다음처럼 생겼다. 보시다시피 총 4개의 버튼이 있다. - Respawn: 클릭 시 리스폰 지점으로 순간이동. - Exit: 클릭 시 게임에서 나감. - Info: 클릭 시 info UI가 켜짐. - Return: 클릭 시 menu UI가 꺼짐. 여기서 공통적으로, 버튼을 누를 때는 같은 클릭 사운드가 플레이 될 것이고, 1편과 같이 UI가 켜져있는 동안에는 ControllerInteractors를 비활성화하여 UI 외의 다른 것들과 상호작용하지 못하게 한다. A. menu UI 자동화 사실 1편과 거의 똑같지만 버튼만 많은 것이니 이번엔 빨리빨리 넘기겠다. 확실이 1편..

Unity/Dev 2023.01.17

[Unity] UI Scripting Automation (1)

Morphai 이전 세션에서는 UI를 만들 때 각 버튼을 reference해주고 OnClick()등의 함수를 노가다로 할당했다. UI를 배치할 때 이런 수고스러움을 덜기 위해 노가다로 했던 모든 것들을 할 수 있는 스크립트를 만들기로 했다. 자동화를 진행할 UI는 총 두 가지이다. 1. Info UI: 해당 씬의 퍼즐에 대한 정보를 볼 수 있다. 2. Menu UI: 리스폰, 게임 나가기 등등의 버튼이 존재 일단 좀 더 버튼이 적고 간단해 보이는 Info UI부터 해보자. A. info UI 스크립팅 자동화 이전 세션 때의 info UI이다. 자동화해야하는 요소: - Start 버튼: 클릭 시 UI 비활성화, sound 플레이, 움직이지 못하는 플레이어 이동 가능. 사실 이게 끝이다..ㅎ 바로 해보자! ..

Unity/Dev 2023.01.17

[Unity] 물 속에서 grab하면 물 구체가 잡히는 interaction 구현하기 (1)

XREAL 학회에서 진행 중인 Morphai 프로젝트에서 제목의 내용의 퍼즐 구현을 맡았다. 이번에 구현하려는 interaction은 다음과 같이 개발하려고 한다. 1. 컨트롤러가 물 collider에 enter하면 물이 grab가능한 상태. 2. 물 collider에 enter한 채로 grab을 하면 deactivate되어 있던 물 구체가 activate되어 grab됨. (실제로 grab하지 않았는데 물 구체가 grab되도록 할 수 있을까..? -- 리서칭 필요) 오늘은 일단 이 두단계를 완성시키는 것이 목표, 일단 허접(?)하게 플레이어와 물 배치. 쭈구려서 테스트하기 싫기 때문에 위쪽에 배치했다. 물 cube는 collider만 부착된 상태. A. 컨트롤러가 물 cube collider에 enter..

Unity/Dev 2023.01.16

[Unity] Player Grab Interaction with Oculus Integration SDK

[Interaction Setting - InputOVR] 1. Hierarchy에 InputOVR을 추가한다. *InputOVR을 못찾겠거나 InputOVR이 있지만 비어있으면 아래 블로그 글을 참고하자. 더보기 https://gycblog.tistory.com/3 [Unity][Trial&Error] Assets에서 InputOVR이 없는 문제. Problem: Oculus Integration를 다운로드하고 import까지 했는데 InputOVR이 안보임. Solution: Oculus Integration을 재다운로드 및 import [Window > Package Manager]에서 Oculus Integration을 찾고 Re-Download 후 Import한다. 그렇다 gycblog.tist..

Unity/Dev 2023.01.16

[Unity][Trial&Error] Oculus Integration SDK 다른 버전 다운받기

Problem: 높은 버전의 Oculus Integration SDK을 사용하면 몇몇 컴포넌트들을 사용할 수 없게 된다. Solution: 낮은 버전의 Oculus Integration SDK를 다시 다운받고 사용한다. 1. 아래 링크에 접속 https://developer.oculus.com/downloads/package/unity-integration/ 2. 버전을 선택 3. 다운로드 4. Unity Editor를 열고 다운로드한 unity package를 연다. 5. 로딩이 끝나고 import할 수 있는 창이 뜨는데 import를 누르면 된다.

Unity/Trial & Error 2023.01.13

[Unity][Trial&Error] InputOVR이 비어있는 문제

Problem: InputOVR이 비어있음. = Component들과 Child Game Object들이 없음. Solution1: 다른 버전의 Oculus Integration SDK를 사용한다. 개인적인 경험으로 43.0 버전에서는 잘된다. https://gycblog.tistory.com/5 [Unity][Trial&Error] Oculus Integration SDK 다른 버전 다운받기 Problem: 높은 버전의 Oculus Integration SDK을 사용하면 몇몇 컴포넌트들을 사용할 수 없게 된다. Solution: 낮은 버전의 Oculus Integration SDK를 다시 다운받고 사용한다. 1. 아래 링크에 접속 2. 버전을 선택 3. gycblog.tistory.com Solutio..

Unity/Trial & Error 2023.01.12

[Unity][Trial&Error] Assets에서 InputOVR이 없는 문제.

Problem: Oculus Integration를 다운로드하고 import까지 했는데 InputOVR이 안보임. Solution: Oculus Integration을 재다운로드 및 import [Window > Package Manager]에서 Oculus Integration을 찾고 Re-Download 후 Import한다. 그렇다면 무슨 이유인지 import되지 않은 항목들이 뜰텐데 이 항목들을 모두 import한다. 몇몇 항목들이 import되지 않은 이유를 유추해보자면, Oculus Integration을 import한 후에 Spatializer를 upgrade하라는 등의 팝업창이 뜨는데, 이로 인해 upgrade 등을 진행하면서 문제가 생기는 것이 아닐까.. 그냥 뜨는 팝업창들 다 무시하는게 ..

Unity/Trial & Error 2023.01.12

[Unity] VR Player Controller with Oculus Integration SDK

Oculus Integration SDK를 사용하여 Unity VR Player의 기본 조작을 개발해본다. 중요 이 글의 내용은 Oculus Integration 43.0 버전을 사용한다. 더 높은 버전을 사용하면 글에서 사용된 컴포넌트들이 deprecated된 경우가 발생할 수 있다. 다른 버전의 Oculus Integration SDK를 다운받는 법 (링크 Click) https://gycblog.tistory.com/5 [기본 Setting 및 Locomotion] 1. Unity Asset Store에서 Oculus Integration을 download 및 import한다. 2. Hierarchy에 OVRPlayerController 추가한다. 3. OVRPlayerController의 OVRC..

Unity/Dev 2023.01.12