유니티 12

최적화 Render Queue

Unity에서 Render Queue는 렌더링 순서를 제어하는 기능이다. 3D에서 렌더링 순서는 중요하며, 원하는 시각적 효과를 얻기 위해서는 올바른 렌더링 순서를 유지해야 한다. Render Queue를 사용하면 특정 객체가 렌더링될 때 다른 객체와의 Z-Test, Alpha 블렌딩, 투명도 등을 적절히 처리할 수 있다. Render Queue의 작동 방식렌더링 순서Unity는 Render Queue 값에 따라 오브젝트를 정렬하고 순서대로 렌더링한다.낮은 Render Queue 값을 가진 오브젝트가 먼저 렌더링되고, 높은 값을 가진 오브젝트가 나중에 렌더링된다.기본 값Unity의 Shader는 Render Queue에 기본값이 설정되어 있다.Opaque (불투명): 2000 (기본값)AlphaTest ..

유니티 2024.11.28

VR 문제 해결 기록(XR Device Simulator)

집에 따로 VR기기가 없었기 때문에 에디터 상에서 시뮬레이션 할 수 있는 XR Device Simulator는 필수였다.Unity Learn에서 VR 프로젝트 만들기를 배우며 따라 만들던 와중, 게임 실행시 XR Device Simulator가 작동하지 않는 문제가 발생했다. 여러 방법으로 문제의 원인을 찾던 중 같은 문제를 겪는 외국인의 글을 찾게 되었다.https://discussions.unity.com/t/is-the-xr-device-simulator-broken-again/929325/7 해결방법은 단순했다.OpenXR을 체크 해제 하고 게임을 실행시키면 해결이 되었다. OpenXR은 여러 XR 장치 간의 표준화된 개발 환경을 제공하는 API로, 따로 VR기기로 테스트를 하지 않는 현재로써는 ..

유니티/VR 2024.10.16

호그와트 레거시 카피작 만들기(1) - VR 기본 중 기본 설정

호그와트 레거시에서 나온 아씨오 수업을 VR로 만들면 재밌겠다는 생각을 했다.처음으로 VR프로젝트를 만들어보게 되었다. 아래의 설정들은 수작업으로 할때 어떤것들을 추가해야 하는지 알아본 것이고, 귀찮다면 유니티 홈페이지에서 기본 설정들이 들어간 샘플 프로젝트를 다운 받는것이 편할 것이다. (이때는 패키지 업데이트 필요)프로젝트는 3D URP로 제작했다.VR에 필요한 Package 설치.Window > Package Manager를 선택한 후 다음 패키지들을 설치.XR Plugin ManagementXR Interaction Toolkit(만약 목록에 표시되지 않는 경우 +버튼을 선택하고 Add Project by Name을 선택, “com.unity.xr.interaction.toolkit”.로 패키지 ..

유니티/VR 2024.10.09

Github Desktop 사용

버전 관리(소스 관리라고도 함)는 정보를 관리하고 추적하는 시스템입니다. 버전 관리 시스템은 모든 종류의 파일이나 소프트웨어, 웹사이트, 기타 데이터에 대한 변경 사항을 저장, 관리, 추적하도록 설정할 수 있습니다. 버전 관리 시스템은 클라우드 스토리지 서비스와 함께 작동하므로 다음과 같은 유용한 기능을 활용할 수 있습니다.백업 스토리지수정 사항 추적프로젝트 관리가장 널리 사용되는 버전관리 솔루션으로는 Github가 있습니다. Github Desktop을 사용해 손쉬운 작업을 할 수 있습니다.Github Desktop를 사용하면 Git 커맨드를 사용하는 커맨드 라인 대신 GUI를 통해 Github 프로젝트에 액세스 할 수 있습니다. GitHub 저장소를 만들려면 무료 GitHub 계정을 생성한 후 Git..

유니티 2024.10.09

옵저버 패턴 - 플레이어 상태 UI

옵저버 패턴이란?옵저버 패턴은 객체의 상태 변화를 감지하고, 그 변화를 다른 객체들에게 자동으로 통보하는 디자인 패턴입니다. 이를 통해 주체(Subject)와 옵저버(Observer) 간의 관계를 정의할 수 있습니다. 옵저버 패턴의 기본 요소:Subject(주체): 상태 변화를 알리고 관리하는 객체입니다. 여러 옵저버를 등록하거나 해제할 수 있으며, 상태가 변화하면 옵저버들에게 이를 통지합니다.Observer(옵저버): 주체의 상태 변화를 감지하는 객체입니다. 주체로부터 통지를 받아 상태를 갱신하거나 특정 작업을 수행합니다.사용한 옵저버 패턴 내용 정리 사용하고자 한 내용플레이어의 체력, 목마름, 배고픔, 스테미나와 같은 여러 수치들이 변하는 것을 UI에서 관찰하고, 값이 변하면 스스로 UI가 변하도록 ..

유니티 2024.09.22

오브젝트 풀링의 사용

서바이벌 생존류 게임을 만들어보면서 자원 스폰을 담당하게 되었다.자원이 필요할 때 마다 무턱대고 생성하는 것은 게임의 성능을 낮추고 최적화에 문제를 일으킬 수 있기 때문에, 오브젝트 풀링을 사용해 보고자 했다.오브젝트 풀링이란?사용할 오브젝트들을 웅덩이 Pool에 한번에 생성 한 뒤, 그 Pool에서 필요할 때 오브젝트를 꺼내와 사용합니다. 사용이 끝난 오브젝트는 다시 Pool에 반환함으로써 게임에서 오브젝트의 생성, 파괴를 최소화하는 방식입니다.한두개의 오브젝트가 아닌, 수천개의 오브젝트들을 생성하고 파괴하는 일을 반복하다보면 CPU에 큰 부담이 되기 때문에 오브젝트의 생성과 파괴를 최소화 시켜주는 오브젝트 풀링을 사용하는 것입니다. 오브젝트 풀링의 사용 유무에 따른 성능 차이 비교는 추후에 하도록 하..

유니티 2024.09.22

Occlusion Culling (시작 및 Bake)

오클루전 컬링은 다른 오브젝트에 가려서 카메라에 보이지 않는 오브젝트의 렌더링을 비활성화하는 기능이다. 위의 이미지에서는 잘 표현되지 않았지만 오클루전 컬링은 다른 오브젝트에 의해서 완전히 가려져도 렌더링 작업에서 가려진 오브젝트를 제거하게 된다.사용방법(Window -> Rendering -> Occlusion Culling) 그 후 occlusion culling을 적용할 오브젝트의 inspector창에서 다음과 같이 설정을 바꿔준다.(Occluder static으로 변경) 그 후 새로 생긴 Occlusion 탭에서 Bake를 누르고 기다려 주면 된다.Occlusion - Bake 탭의 PropertySmallest Occluder : 오클루전 컬링을 실행할 때 다른 오브젝트를 가리는 가장 작은 오브..

유니티 2024.06.28

포톤 멀티 서버 만들기(PUN 2)_사용편

https://seaweed0201.tistory.com/96 포톤 멀티 서버 만들기(PUN 2)_세팅편먼저 Photon사이트에서 계정을 만들어준다.https://www.photonengine.com/ko-kr 글로벌 크로스 플랫폼 실시간 게임 개발 | Photon EngineEssentialPhoton Details Discover a summary of our product range, notable features, the power ofseaweed0201.tistory.com세팅 후에 게임에 적용하는 법을 알아보자.본인이 만들 게임은 3D 멀티 게임이므로 간단하게 플레이어를 만들어준다. 그 후 플레이어의 Inspector창에 Photon View, Photon Transform View를 넣어준..

유니티 2024.06.22

포톤 멀티 서버 만들기(PUN 2)_세팅편

먼저 Photon사이트에서 계정을 만들어준다.https://www.photonengine.com/ko-kr 글로벌 크로스 플랫폼 실시간 게임 개발 | Photon EngineEssentialPhoton Details Discover a summary of our product range, notable features, the power of the Photon Cloud, and our cost-effective pricing plans. HAVE A LOOKwww.photonengine.com계정을 만들었으면, 유니티의 새 프로젝트를 생성해준다. 프로젝트 생성 후, 유니티 Assetstore에서 Pun2 - free를 다운로드 받고 Import 시켜준다.https://assetstore.unity.c..

유니티 2024.06.21