유니티(Unity) 플랫폼 목표 프레임 속도 설정 Application.targetFrameRateApplication.targetFrameRate는 유니티가 게임 렌더링을 시도하는 목표 프레임 속도를 지정합니다. 정수 > 0 또는 -1(기본값) 유니티의 기본 targetFrameRate 값은 -1입니다. 이것은 게임이 플랫폼의 기본 프레임속도(default frame rate)로 렌더링되어야한다는것을 의미합니다. 기본 프레임 속도는 플랫폼에 따라서 상이합니다. 데스크톱기본 프레임 속도(default frame rate)는 달성 가능한 최대 프레임속도입니다(동기화되지 않은 상태로 렌더링)QualitySettings.vSyncCount를 0으로 설정한 경우 Application.targetFrameRat..
유니티에서 모바일(안드로이드)에 빌드실행한 게임을 디버깅하기(명령프롬프트, adb logcat) 유니티에서 모바일(안드로이드 플랫폼)에 게임을 빌드실행하고 윈도우 명령프롬프트에서 디버깅하는 방법 Android SDK 플랫폼 도구중 하나인 adb(안드로이드 디버그 브리지)가 설치되어있어야한다. https://developer.android.com/studio/command-line/adb 1)모바일 장치를 데스크톱에 연결하고 usb 디버깅을 허용한다 (삼성 갤럭시 모델의 경우 개발자옵션에서 usb디버깅을 활성화하고 장치를 재연결하면 usb디버깅을 허용할수있다) 2)유니티의 build settings에서 build and run을 클릭한다. 3)빌드가 정상적으로 완료되면 모바일에서 게임이 실행된다. 4)시스..
유니티 게임 개발에서 쓰로틀링(throttling) 과 Adaptive Performance를 사용한 성능 최적화서멀 쓰로틀링(thermal throttling)쓰로틀링은 장치의 발열로 인해 온도가 일정 수준 이상으로 높이지는 경우 성능을 자동으로 낮추는 기술입니다. 게임에서 게임 로직 처리, 렌더링등의 작업이 많을수록 CPU와 GPU는 더 많은 전력을 소모하여 더 많은 양의 열이 발생하고 장치의 온도를 낮추기 위해 성능이 저하됩니다(thermal throttling) 게임의 성능(Performance) 문제가 발생하면 게임플레이에 영향을 주며 장치의 배터리도 더 빠르게 소모됩니다. Adaptive PerformanceAdaptive Performance는 모바일 장치에서 성능과 전력 소비를 최적화하기 ..
유니티의 텍스처 압축 포맷(texture compression format, TCF)유니티에서 임포트한 일반적인 이미지 파일 형식들(JPG, PNG, PSD, TGA, 기타)은 실시간 렌더링에 직접 사용되지않는다. 유니티는 이러한 형식들을 GPU에 최적화된 텍스처 압축 포맷(TCF)으로 변환한다. GPU는 변환된 텍스처를 비교적 더 적은 메모리로 더 빠르게 읽고 압축해제하여 렌더링할수있다. 기본적으로 유니티는 사용자가 선택한 빌드 플랫폼에 적합한 형식으로 텍스처를 자동 변환한다. 예에서 PC, standalone 플랫폼의 프로젝트에서 유니티가 이미지 소스 파일의 PNG 형식을 DXT1 형식으로 자동 변환한것을 확인할수있다(텍스처 import settings) 빌드에는 변환된 텍스처만 포함되며 이미지 소스..
유니티 안드로이드 빌드 - 유효하지않은 NDK 버전 (unity required NDK r19) preferences의 external tools에서 안드로이드 NDK의 설치 경로를 설정했을때 아래와 같은 메시지가 표시된다면 현재 유니티 에디터의 버전이 현재 설치되어있는 NDK의 버전을 지원하지않기때문이다. 1)예에서 유니티 버전 2020.3.0f1을 사용중이며 설치되어있는 NDK의 버전은 ndk r18(NDK 18.1.5063045)이다. 2)유니티가 요구하는 NDK 버전을 확인한다 unity required NDK r19(19.0.5232133) 3)아래 개발자 안드로이드 웹사이트에서 최신 버전의 NDK를 다운로드한다 https://developer.android.com/ndk/downloads?hl..
유니티 에디터 버전에 따라서 요구하는 SDK, JDK, NDK의 버전 1)아래 유니티 공식 기술문서에서 에디터의 버전에 따라서 요구하는 sdk, ndk, jdk버전을 확인할수있다. https://docs.unity3d.com/2020.3/Documentation/Manual/system-requirements.html 2)좌측 상단의 version에서 에디터 버전을 선택한다. 3)Unity Player system requirements의 mobile 섹션에서 유니티를 빌드하고 실행하기 위한 최소 요구 사항을 확인할수있다.
유니티 안드로이드 빌드4 - 삼성 갤럭시에 apk 파일 설치하기 1)유니티 에디터에서 빌드를 완료하면 생성한 apk파일을 확인할수있다. 2)컴퓨터에 모바일 장치를 연결하고 폴더로 이동한다. 예에서는 삼성 갤럭시를 이용하였다. 3)phone 폴더에 새로운 폴더를 생성한다. 4)예에서 새로 생성한 폴더의 이름을 apkinstall로 설정하였다. 5)apk파일을 해당 폴더에 복사한다. 6)갤럭시 홈 화면에서 내 파일 앱으로 이동한다. 7)내장 메모리로 이동한다. 8)새로 생성한 폴더(apkinstall)로 이동한다. 9)해당 폴더에서 복사한 apk파일을 선택한다. 10)애플리케이션 설치를 진행한다. 11)play 프로텍트에 의해 차단됨 대화상자에서 무시하고 설치를 진행한다. 12)앱이 설치되면 완료한다. 13..
유니티 안드로이드 빌드3 - 프로젝트 player settings, 최종빌드하기 (company name, product name, minimum API level, scripting backend, build) 1)project settings의 player에서 회사명, 상품명(company name, product name)을 입력한다. 2)identification의 package name은 이전에 입력한 company name, product name으로 설정되어있는것을 확인할수있다. 3)최소 API 수준(minimum API level)을 선택한다. 4)scripting backend에서 mono 또는 IL2CPP를 선택한다. 5)64비트 아키텍처를 지원해야한다면 IL2CPP를 선택하고 하단의 ..
유니티 안드로이드 빌드2 - android SDK, NDK, oepnJDK 설치하기 (유니티 허브에서 모듈을 추가하여 설치하는 방법) 안드로이드 빌드를 진행하고 앱을 실행하려면 android SDK, NDK, JDK를 설치해야한다. 유니티 에디터의 버전에 따라서 요구하는 SDK, NDK, JDK버전이 다르기때문에 유니티 허브에서 모듈을 추가하는 방법으로 설치하는것을 권장한다. 1)유니티 허브에서 설치 메뉴로 이동하고 모듈을 추가하려는 버전의 에디터를 선택한다. 2)모듈 추가를 선택한다. 3)android SDK, NDK Tools와 openJDK에 체크하고 다음으로 이동한다. 4)사용 약관에 동의하고 완료하면 모듈 설치를 진행한다. 5)설치가 완료되면 아래 위치에 Android SDK, NDK, Open..
유니티 안드로이드 빌드1 - 프로젝트를 안드로이드 플랫폼으로 전환하기 1)build settings으로 이동하고 플랫폼 목록에서 안드로이드(android)를 선택한다. 에디터에 대한 android build support 모듈이 설치되어있지않으면 하단의 switch platform버튼이 비활성화된다. 2)이 경우 install with unity hub에서 모듈 설치를 진행할수있다. 3)android build support를 선택하고 확인하면 해당 버전의 에디터에 대한 android build support 모듈 설치를 진행한다. 4)모듈이 정상적으로 설치되면 안드로이드의 추가 빌드옵션이 표시되고 switch platform 버튼이 활성화된다. switch platform을 클릭하면 프로젝트를 안드로이..
유니티 URP에서 legacy shader 사용하지않음 권장 1)아래 예에서 프로젝트는 렌더파이프라인으로 URP를 사용하고있다. 2)씬에 legacy shader를 사용하는 오브젝트를 추가하였다. 3)URP 프로젝트에서 일부 legacy shader를 사용하는 오브젝트들은 씬 또는 런타임에서 정상적으로 렌더링된다. 4)하지만 레거시 셰이더는 SRP Batcher와 GPU 인스턴싱(일부 셰이더)을 지원하지않음으로 최적화에 한계가 있어 권장하지않는다. 재질의 select shader를 선택한다. 5)해당 셰이더가 SRP Batcher와 호환되지않음을 확인할수있다(not compatible) SRP Batcher는 씬에서 CPU 렌더링 속도를 높이는 렌더링 루프로 SRP 프로젝트에서 사용가능하다(URP, HD..
유니티 애니메이션 뷰에서 클립의 속성 목록이 노란색으로 표시되는 경우 1)씬에 애니메이션을 사용하는 모델을 추가하였다. 2)animation view에서 게임 오브젝트가 사용하는 애니메이션(우측 타임라인) 및 해당 애니메이션에 의해 제어되는 게임 오브젝트, 속성 목록(좌측)을 확인할수있다. 3)씬에서 게임 오브젝트의 이름을 변경하면 animation view에서 해당 게임 오브젝트 및 하위 게임 오브젝트의 속성 목록이 노란색으로 표시되며 애니메이션이 동작하지않는다(the gameobject or component is missing) 4)기존의 이름으로 재설정하면 정상적으로 목록을 표시하고 애니메이션이 동작한다. 5)이와같이 계층에 있는 게임 오브젝트의 이름과 해당 게임 오브젝트에 대한 애니메이션 속성의..