유니티 URP 프로젝트에서 서로 다른 대상 플래폼의 렌더러 설정하기 1)프로젝트 설정(project settings)의 graphics에서 현재 프로젝트의 렌더 파이프라인이 URP로 설정되어있는것을 확인할수있습니다. 2)프로젝트의 Settings 폴더에서 렌더 파이프라인 에셋과 렌더러 데이터를 확인할수있습니다. 현재 렌더파이프라인에서 사용중인 렌더러를 선택합니다(URPP-HighFidelity-Renderer) 3)렌더러의 속성을 설정하고 렌더러 특징(renderer feature)을 추가합니다. 렌더러 특징을 추가하려면 하단의 add renderer feature를 클릭하고 추가할 특징을 선택합니다. 4)프로젝트 설정의 quality로 이동합니다. 품질(quality)에 따라서 대상 플래폼에서 사용중인..
유니티(unity) 빌트인 렌더파이프라인에서 그림자 해상도 설정(stable fit, close fit) 1)씬에서 조명에 의한 오브젝트의 그림자 해상도가 낮은것을 확인할수있습니다. 2)프로젝트 설정(project settings)의 quality에서 shadow projection, shadow distance를 확인합니다. stable fit shadow projection 3)stable fit을 선택하고 shadow distance의 수치를 낮춥니다. 4)그림자의 해상도가 높아진것을 확인할수있습니다. close fit shadow projection 5)또는 close fit을 선택하면 높은 해상도의 그림자를 표현합니다.
유니티 그림자 영역 렌더링 커스텀 쉐이터 ShadowDrawwer 그림자 영역만 렌더링하는 커스텀 쉐이터입니다. 일본의 유니티 개발자 keijiro가 작성한 쉐이더로 아래 웹사이트에서 다운로드 및 이용할수있습니다. 포워드 렌더링 패스(Forward rendering path)에서 정상적으로 동작합니다. 카메라 스카이박스를 비활성화해야합니다. ShadowDrawwer https://github.com/keijiro/ShadowDrawer GitHub - keijiro/ShadowDrawer: Shadow matte shader for Unity Shadow matte shader for Unity. Contribute to keijiro/ShadowDrawer development by creating a..
유니티에서 AR Foundation 확장팩(Extensions) 설치하기 1)프로젝트에 AR Foundation, ARCore 패키지가 설치되어있는지 확인합니다. 2)빌드 설정에서 현재 플래폼이 안드로이드로 설정되어있는지 확인합니다. 3)패키지 관리자(package manager)에서 git URL을 사용하여 패키지를 추가합니다(add package from git URL) 4)아래 AR Core 확장팩 깃 주소를 복사하여 입력하고 add를 클릭합니다. https://github.com/google-ar/arcore-unity-extensions.git 5)패키지가 정상적으로 설치되는것을 확인할수있습니다. 만약 패키지를 정상적으로 설치하지않는경우 아래 글을 확인합니다. 유니티 패키지 설치 오류(No ‘g..
유니티(unity)에서 Sketchfab 웹사이트 3D 모델 가져오기 및 내보내기(Sketchfab for Unity) Sketchfab은 다양한 3D 디지털 콘텐츠를 업로드하고 다른 사용자에게 창작물을 선보이고 공유할수있는 웹사이트입니다. https://sketchfab.com/ Sketchfab Exporters Sketchfab 웹사이트에 직접 모델을 게시할수있는 다양한 3D 프로그램의 내보내기 플러그인들이 존재합니다 (3D맥스, 블렌더, 시네마4D, MAUYA, 후디니, 스케치업, 지브러시, 유니티, 기타) https://sketchfab.com/exporters Exporters for 3D software Check out all of the Sketchfab exporter plugins &..
유니티(unity) 가상현실 프로젝트 반응 레이어 설정(XR interaction toolkit) (유니티 버전 2021.3.6f1) 1)씬에 XR Origin 게임 오브젝트와 왼손 및 오른손 컨트롤러에 반응할 게임 오브젝트(Bow, Quiver)를 준비합니다 2)프로젝트의 에셋(Assets)에서 XRI의 InteractionLayerSettings을 선택합니다. 3)왼손 및 오른손 컨트롤러에 사용할 반응 레이어 이름을 입력합니다(left, right) 4)왼손 및 오른손 컨트롤러의 Interaction Lyaer Mask를 설정합니다. XR Origin의 하위에서 LeftHand Controller(Right Controller) 게임오브젝트를 선택하고 XRDirectInteractor 컴포넌트의 In..
유니티 빌드 오류 BuildFailedException: Burst compiler failed running(버스트 컴파일 미사용 경우) (유니티 버전 2021.3.6f1) 버스트 컴파일을 사용하지않는 프로젝트에 burst 패키지가 설치되어있는 경우 빌드 오류가 발생합니다. 1)프로젝트 빌드시에 콘솔에서 다음과 같은 오류를 확인할수있습니다. BuildFailedException: Burst compiler(1.6.6) failed running 2)상단의 window 메뉴에서 패키지 관리자(package manager)로 이동합니다. 3)Burst 패키지가 설치되어있는것을 확인할수있습니다. 4)프로젝트 설정의 Burst AOT Settings로 이동합니다. 5)Enable Burst Compilatio..
유니티(Unity)의 텍스트 메시 프로(TextMeshPro) 텍스트 메시 프로(TextMeshPro)는 기존의 UI 텍스트와 레거시 텍스트 메시(Text Mesh)를 대체하는 새로운 텍스트 솔루션입니다. 고급 텍스트 렌더링 기술(SDF 텍스트 렌더링)을 사용하여 높은 성능으로 시각적 품질이 우수한 텍스트를 렌더링합니다. 또한 커스텀 쉐이더 세트, 향상된 텍스트 제어 기능(텍스트 스타일 지정 및 텍스처링)등을 제공합니다. TextMeshPro 소개 영상(TextMesh Pro - Product Highlight) https://youtu.be/MX_pM8QKTAc 레거시 텍스트 메시와 텍스트 메시 프로 비교(TextMesh vs. TextMesh Pro) https://youtu.be/rdc8UkxuSZ..
유니티(Unity) 기본 어셈블리(Assembly-CSharp) 확인하기 1)프로젝트의 에셋 폴더(Assets)에서 새로운 스크립트를 생성합니다. 2)스크립트를 선택하고 import settings에서 어셈블리 정보(Assembly Information)을 확인합니다. 일반적으로 유니티는 거의 모든 게임 스크립트를 미리 정의된 어셈블리인 Assembly-CSharp.dll로 컴파일합니다. 3)비주얼스튜디오의 솔루션 탐색기를 확인합니다. 4)어셈블리(Assembly-CSharp)와 동일한 이름의 프로젝트를 확인할수있으며 유니티 프로젝트 폴더에 해당 프로젝트 파일이 존재하는것을 확인할수있습니다. 5)프로젝트의 참조를 확인합니다. 6)어셈블리(Assembly-CSharp)의 참조 어셈블리를 확인할수있습니다. ..
유니티(Unity) 조이스틱 버튼 입력 사용하기(InputManager) 1)프로젝트 설정(project settings)에서 InputManager를 확인합니다.입력 관리자(InputManager)에서 사전설정된 몇가지 유형의 컨트롤(키, 버튼, 가상축 )을 확인할수있습니다. https://docs.unity3d.com/2021.3/Documentation/Manual/class-InputManager.html 2)Fire1(Fire2)에서 Positive Button에 joystick button 0(joystick button 1)으로 사전설정된 컨트롤을 확인합니다. 3)씬에 게임오브젝트를 생성하고 새로운 스크립트를 추가합니다. Input.GetKeyUp함수 또는 Input.GetButtonUp함수..
유니티(unity)에서 UI 마우스 클릭 이벤트 사용하기(IPointerClickHandler, OnPointerClick) IPointerClickHandler, OnPointerClick를 사용한 마우스 클릭 이벤트 감지 1)씬에 UI 게임오브젝트를 추가하고 구성합니다(Canvas, Panel) UI 마우스 클릭 이벤트 감지를 사용하려면 씬에 이벤트 시스템이 존재해야합니다(EventSystem) 2)캔버스(Canvas) 오브젝트에 Graphic Raycaster 컴포넌트가 존재하는지 확인합니다. 그래픽 레이캐스터에서 후면 그래픽 레이캐스트를 사용할지 설정하고(Ignore Reversed Graphics) 레이캐스트 차단 마스크를 설정합니다(Blocking Mask) 3)클릭 이벤트를 사용할 UI 게임..
유니티(Unity) 자식 오브젝트 컴포넌트 가져오기(GetComponentInChildren함수) 다수의 자식 오브젝트가 존재하는 경우 특정한 타입의 컴포넌트를 가지는 게임 오브젝트의 컴포넌트를 가져오기 1)다수의 자식 오브젝트(child)를 가지는 부모 오브젝트(parent)를 준비합니다. 한 개의 자식 오브젝트에 컴포넌트를 추가합니다. 2)새로운 스크립트에서 GetComponentInChildren함수를 사용하여 자식 오브젝트의 컴포넌트를 가져오고 게임오브젝트의 이름을 출력합니다. 3)스크립트를 부모 오브젝트에 추가합니다. 4)게임을 시작하면 다수의 자식 오브젝트중에서 특정한 타입의 컴포넌트(Rigidbody)를 가진 게임오브젝트의 이름을 출력합니다(해당 컴포넌트를 가지는 자식 오브젝트가 두개이상이면..