본문 바로가기

개발/Unity, C#

Unity 하드웨어 스펙으로 자동 옵션 세팅하기

 

낮은 스펙의 디바이스로 게임을 하다 보면 게임 최초 시작의 옵션이 높아서 처음에 렉이 걸리는 경우가 있음

 

그런 경우를 대비해 앱 최초 실행 시 하드웨어 스펙을 체크해 자동으로 옵션을 세팅하는 기능이 필요

 

하드웨어 주요 스펙으로 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