VR작업을 하다보면 초반 세팅하는 부분에 한 번씩쯤 다들 봤을 것입니다. Rendering Mode에 보면 Multi Pass와 Single Pass Instanced , 모바일의 경우 Multi View가 존재합니다. 이 3개의 차이는 아래 표와 같습니다. 기능 Multipass (다중 패스) Single Pass Instanced Multiview 렌더링 방식 여러 개의 렌더 패스를 사용하여 화면을 그립니다. 단일 렌더 패스에서 모든 드로우 콜을 인스턴스화된 드로우 콜로 교체합니다. 단일 렌더 패스에서 모든 드로우 콜을 처리합니다. 효율성 느림 (여러 번의 렌더링 작업이 필요) CPU 사용량: 크게 감소, GPU 사용량: 소폭 감소 CPU 사용량: 적게 줄지만 GPU 사용량은 미세하게 개선됩니다. 사..
유니티 프로젝트를 하다 보면 위와 같이 경고문을 볼 수 있습니다. 몇 몇 경고문들은 주의하셔야 하지만, 사용되지 않는 필드 등 필요 없는 경고문도 존재합니다. 그런 경고문을 아래 코드를 사용하여 없앨 수 있습니다. #pragma warning disable 경고문을 보면 해당 경고문의 번호가 나오는 데 해당 번호를 적으시면 됩니다.
프로젝트를 하다 보면 분리된 메쉬가 필요한 경우가 생기지만, 아래처럼 하나로 메쉬가 묶여있는 경우가 종종 있습니다. 디자이너가 있는 팀이라면 디자이너에게 요청해서 하나로 묶여 있는 포스트잇 메쉬를 나눠달라고 요청할 수 있지만, 수정되는 시간을 기다리기 아깝고, 또는 디자이너가 없는 1인 개발자라면 하나로 묶여 있는 메쉬를 분리하기란 어렵습니다. 이럴 때 사용할 수 있는 에셋이 바로 Mesh Extractor입니다! Mesh Extractor에셋이란? 위 사진처럼 하나로 묶여 있는 포스트잇 메쉬에서 필요한 포스트잇 메쉬만 추출하는 등 모델의 일부를 추출해내는 에셋입니다. 모델을 추출할 때 텍스처와 다시 매핑된 UV가 포함된 프리팹으로 추출해낼 수 있으며, Pivot도 설정할 수 있습니다. 사용방법도 매우 ..
프로젝트를 하다보면 진짜 자주 사용되는 리소스들이 존재하게 됩니다. 예를 들어, 게임에 핵심이 되는 메인 캐릭터, 퀘스트에 사용되는 아이템들, Main Canvas 등 자주 사용하는 리소스들이 존재하게 됩니다. 이런 리소스들을 찾기 쉽게 폴더 컨벤션도 맞추고, 하이러키도 체계적으로 관리해야 합니다. 하지만, 체계적으로 관리해도 가끔 리소스의 위치를 까먹거나, 수 많은 리소스들 중 찾고자 하는 리소스를 발견하리란 정말 어렵습니다. 그래서, 제가 사용하는 것이 바로 vFavorites2 에셋입니다. vFavorites2 이란? 자주 사용하는 리소스들을 하나의 공간에서 관리할 수 있게 도와주는 유틸 도구입니다. 단축키 Alt를 누르면 프로젝트 폴더의 일부가 리소스들을 즐겨찾기(북마크) 할 수 있는 공간으로 바..
메쉬를 묶는 이유는 Batch를 줄이기 위함입니다. CombineMesh함수를 이용하지 않고 MeshBaker 에셋을 이용해서 줄이는 방법도 있지만, 이번 시간에는 CombineMesh함수를 이용한 방법에 대해 알아보고자 합니다. 유니티 MeshBaker MeshBaker란? 여러 개의 메시를 하나의 큰 메시로 결합하고 해당 오브젝트의 텍스처를 텍스처 아틀라스 및 텍스처 배열로 만드는 데 있어 도움을 주는 툴(Tool)입니다. 텍스쳐 아틀라스를 사용하지 wlsdn629.tistory.com 사용방법 using System.Collections.Generic; using UnityEngine; public class MeshCombiner : MonoBehaviour { public GameObject P..
Git LFS 데이터 확인 방법 GitHub 홈페이지에 가셔서 로그인 후 Settings부분에 들어가줍니다. GitHub: Let’s build from here GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea... github.com Settings부분에 들어가셨으면, Plans and usage 탭을 눌러줍니다. 쭉 아래로 내리다 보면 Git LFS Data 부분을 확인할 수 있으며, LFS가 얼마나..
흠.....왜 갑자기 유튜브를 찍게 됐냐...이야기를 해보자면... 예전부터 해보고 싶었기 때문입니다 히히... 단순한 이유지요. 때 마침, 방학이라 시간도 널널하고 타워디펜스게임을 좋아하다보니 이참에 해보자! 라는 느낌이였던 것 같아요. 사실 1~2주면 다 끝낼 줄 알았는데... 영상 녹화도 서툴고 편집도 엉망이라 시간이 생각보다 더 소요가 되더라구요 ㅠㅠㅠ 뭐...어찌저찌 결국 완성하게 됐는데 생각보다 퀄리티가 좋지 않아 너무 속상합니다ㅠㅠㅠ 전달하고자 하는 내용도 제대로 전달이 안되고.... 보는 입장에서 불편하게 느껴질거 같더라구요... 근데, 더 디벨롭하기에는 저의 시간적인 여유와 귀차니즘 등등이 하지말라고 가스라이팅을 하여.... 더 디벨롭은 하지 못했습니다 헿 지금까지 제가 만들 결과물들을 ..
Enter Play Mode Option의 단점은 싱글톤이 존재하거나 Event가 제대로 등록이 안된다는 등의 문제가 있습니다. 하지만, 그런 요소가 존재하지 않고 빠르게 무언가를 테스트 할 때에는 Enter Play Mode Option은 엄청나게 개발 속도를 단축시켜주는 기능입니다. 유니티 답답한 에디터 실행으로부터 해방! #Enter Play Mode Settings 움짤을 보시면 차이가 느껴지십니까? 좌측 움짤의 경우 컴파일 시간이 굉장히 긴 데 반면에, 우측 움짤은 에디터 플레이 시작 버튼을 누름과 동시에 바로 플레이 되고 있습니다. Enter Play Mode란? U wlsdn629.tistory.com 아래는 토글 방식으로 Enter Play Mode Option을 끄고 켤 수 있는 스크립트..
예전부터 샌드백을 엄청엄청엄청 만들어 보고 싶었습니다... 샌드백 관련 영상과 기술들을 찾아봤었지만 여태껏 찾지 못하다가, AutoHand라는 에셋 안에 샌드백이 있어서 너무나 행복했고 바로 알아보았습니다. 저는 당연히 코드를 직접 짜야할 줄 알았으나, Configure Joint 하나로 해결이 된다는 점에서 너무 신기했습니다! 진짜.....이 글을 보는 여러분들은 행운...저는 진짜 오랫동안 찾음 ㅠㅠ 구조 구조는 정해진 틀이 없습니다. 하지만 기본적인 샌드백 뼈대는 설치하시면 됩니다. 저는 허수아비 타입의 샌드백 구조를 만들어 보았습니다. Configure Joint Auto Hand 에셋에 설치되어 있는 샌드백 구조를 살펴보았을 때, 위 빨간색 박스친 부분만 사용한 것을 확인했습니다. 그 외에는 기..
이번 시간에는 Curved UI를 만드는 방법에 대해 배워보고자 합니다. 저번 시간에 배운 Flat Canvas도 참고하시길 추천드립니다! 유니티 VR UI 인터렉션 #Flat Canvas 이번 포스팅에서는 Flat한 Canvas와 인터렉션 할 수 있는 방법에 대해 알아보겠습니다. UI와 인터렉션 하기 위해 Ray 기능을 사용할 것입니다. UI 세팅 먼저, 빈 게임 오브젝트를 하나 생성해준 후 이 wlsdn629.tistory.com 이번 시간 최종 목표는 Curved UI를 만든 후에, Ray Interaction이 가능하도록 하는 것입니다. 구조 위 사진과 같은 구조로 만들 예정이므로, 각 이름에 맞게 빈오브젝트를 만들어 두시길 바랍니다. Canvas의 경우 빈 오브젝트가 아닌 UI - Canvas로..
VR개발을 하다 보면 에디터를 실행할 때 에어링크로 연결된 기기가 재생이 되지 않고 PC를 이용한 에디터 디버깅이 필요할 때가 종종 생깁니다. 에어링크가 연결된 상태임에도 불구하고 PC로 에디터를 컨트롤 하기 위해서는 프로젝트 세팅에 있는 XR 플러그인 매니지먼트의 Initialize XR on Startup부분을 비활성화해주면 됩니다. 하지만, 매번 저 윈도우창에 들어가서 껐다 켰다 하기란 매우 불편한 과정입니다.모습 그래서 에디터 상단에 토글을 이용하여 저 부분을 껐다 켰다 할 수 있는 기능을 만들어 보았습니다.큰 문제는 되지 않으나 윈도우 창에서 토글을 건드려도 에디터 상단 토글은 업데이트 되지 않습니다. 따라서, 에디터 상단 토글을 이용하시길 추천드립니다. 코드using System.Reflect..
움짤을 보시면 차이가 느껴지십니까? 좌측 움짤의 경우 컴파일 시간이 굉장히 긴 데 반면에, 우측 움짤은 에디터 플레이 시작 버튼을 누름과 동시에 바로 플레이 되고 있습니다. Enter Play Mode란?Unity의 Enter Play Mode설정은 Unity Editor에서 Play Mode로 들어가는 데 걸리는 시간을 최적화하도록 설계된 기능입니다. Reload Domain: 스크립팅 상태를 재설정합니다. 모든 C# 스크립트의 백업을 생성하고 원본 스크립트를 언로드한 다음 재생 모드 인스턴스에 대한 새 스크립트를 다시 로드하는 작업이 포함됩니다.Reload Scene: 현재 장면을 삭제하고 처음부터 다시 씬을 처음부터 로드하는 작업이 포함됩니다.더보기Unity의 도메인이란?스크립트와 코드가 실행되는..
저번 시간에도 Flat Canvas 활용법에 알아봤었습니다. 저번에는 Ray를 이용한 방법이였고, 이번 시간에는 Poke를 이용한 방법에 대해 알아보고자 합니다. 유니티 VR UI 인터렉션 #Flat Canvas 이번 포스팅에서는 Flat한 Canvas와 인터렉션 할 수 있는 방법에 대해 알아보겠습니다. UI와 인터렉션 하기 위해 Ray 기능을 사용할 것입니다. UI 세팅 먼저, 빈 게임 오브젝트를 하나 생성해준 후 이 wlsdn629.tistory.com 플레이어 세팅 [Controller / Hand]Poke Interactor 프리팹을 배치해줍니다. 플레이어의 손가락이 UI를 뚫고 지나가게 하고 싶지 않다면 Limit Visual 컴포넌트를 Poke Interactor 프리팹에 추가해줍니다. Can..
Behaviour Tree, 줄여서 BT라고 불리는 이 용어는 예전부터 들어왔었습니다. 하지만 BT의 실용성에 대해 그닥 느끼지 못했기에 지금까지 사용하지 않았지만 FSM Pattern을 직접 제작해보고 난 이후 BT의 실용성을 알게 되었습니다. FSM - HFSM - BT 구조 오늘 친구들과 이야기를 하면서 FSM과 BT(Behavior Tree)에 대해 이야기를 나누었습니다. 생각난 김에 해당 구조들에 대해 글을 작성해 보려고 합니다. 각 구조들은 AI 행동 패턴을 설계하는등 다양한 neulsang-day.tistory.com 위 사이트에 들어가시면 FSM, HFSM, BT에 대한 설명과 차이를 굉장히 잘해놓으셔서 쉽게 이해할 수 있습니다. Behaviour Designer란? Behaviour De..
이번 포스팅에서는 Text Mesh Pro 사용방법에 대해 알아보고자 합니다. TextMesh Pro 임포트 프로젝트 세팅에 들어가셔서 TextMesh Pro를 임포트해줍니다. 그 다음, TextMeshPro - Text를 하나 생성해준 다음 영어와 한글을 적어줍니다. 캔버스를 보시면 한글이 깨져있는 것을 볼 수 있습니다. 그 이유는 폰트가 영어 및 기호들만 Bake 되어 있는 동시에 Static Mode이기 때문입니다. 따라서 TextMeshPro에서 기본적으로 제공하는 폰트는 한글을 지원하지 않는다는 소리입니다. Static TextMeshPro Static Mode는 표시할 텍스트에 대해 미리 메모리를 할당합니다. 메모리가 미리 할당되기 때문에, Static TextMeshPro는 텍스트가 자주 변..