낮은 스펙의 디바이스로 게임을 하다 보면 게임 최초 시작의 옵션이 높아서 처음에 렉이 걸리는 경우가 있음
그런 경우를 대비해 앱 최초 실행 시 하드웨어 스펙을 체크해 자동으로 옵션을 세팅하는 기능이 필요
하드웨어 주요 스펙으로 CPU, GPU, RAM을 체크함
float cpuScore = 1.0f
float gpuScore = 1.0f;
float ramScore = 1.0f;
cpuScore *= userHardwareSpec.processorFrequency / referenceSpec.processorFrequency;
cpuScore *= userHardwareSpec.processorCount / referenceSpec.processorCount;
gpuScore *= userHardwareSpec.graphicsMemorySize / referenceSpec.graphicsMemorySize;
gpuScore *= userHardwareSpec.graphicsShaderLevel / referenceSpec.graphicsShaderLevel;
gpuScore *= userHardwareSpec.maxTextureSize / referenceSpec.maxTextureSize;
ramScore *= userHardwareSpec.systemMemorySize / referenceSpec.systemMemorySize;
기본적인 비교 요소임
graphicsShaderLevel, maxTextureSize는 하드웨어의 지원상태를 체크하는 부분이라 프로젝트 상황에 따라 크게 중요하지 않을 수 있음
그 외에 하드웨어의 지원 상태를 체크하는 플래그들이 여럿 있으니 프로젝트 상황에 맞게 추가하거나
스코어의 가중치를 다르게 설정해주면 됨
위의 코드로 나온 하드웨어 스코어에 따라 최저, 권장 사양의 레퍼런스 사양과 비교하고 퀄리티 세팅을 해주면 됨
'개발 > Unity, C#' 카테고리의 다른 글
Unity C# Enum 사용시 Garbage 문제??? (0) | 2021.03.01 |
---|---|
Unity 2Pass Outline Toon Shader (0) | 2020.12.26 |
Unity 배경을 투명하게 캡처하는 방법 (1) | 2020.07.26 |
C# Closure 클로저 (0) | 2020.04.18 |
Unity 2019.3 URP Camera Stacking (0) | 2020.04.04 |