유니티에서 프로젝트의 그래픽 quality 설정하기 1)프로젝트의 각 플랫폼에 대한 그래픽 품질 수준을 설정하려면 project settings의 quality로 이동한다. quality에서 각 플랫폼에 대하여 사전 설정된 세개의 품질 수준을 기본적으로 제공한다(low, medium, high) 2)단계를 선택하면 해당 레벨에서 사용하는 사전설정된 렌더링 속성들을 확인할수있다. 3)모바일 또는 저성능 하드웨어의 경우 상대적으로 낮은 레벨을 선택한다(low) 레벨이 높으면(high) 그래픽 품질이 높아지지만 프레임속도를 희생한다. 예를들어 high 레벨과 다르게 low 레벨은 기본적으로 vsync를 사용하지않음으로 설정되어있다(vsync count- dont sync) 4)URP의 경우 각 레벨에 대한 렌..
유니티에서 안드로이드 프로파일링하기(profiler) 유니티에서 데스크톱에 연결된 안드로이드(모바일 장치)의 어플리케이션(게임)을 프로파일링 하는 방법 1)데스크톱에 모바일 장치를 연결하고 build settings에서 development build에 체크하고 build and run을 클릭한다(빌드를 시작하기전에 모바일 장치에서 USB디버깅을 허용해야한다) 2)빌드가 완료되면 모바일 장치에 어플리케이션이 설치되며 게임이 실행된다. 3)프로파일러를 표시하기위해 상단의 window 메뉴에서 analysis의 profiler를 선택한다. 4)프로파일러 타겟(target)에서 현재 연결된 모바일 장치(안드로이드 플레이어)를 선택하면 실행중인 게임에 대한 프로파일링이 진행되는것을 확인할수있다. 5)녹화 버튼을..
유니티에서 reset함수 사용하기 reset함수는 사용자가 게임 오브젝트에 스크립트를 추가할때 또는 해당 컴포넌트를 초기화(reset)할때 호출된다. 편집기 모드(editor mode)에서 사용할수있으며 값을 초기화하는데 사용한다. 1)예에서 새로운 스크립트를 생성하고 reset함수를 선언하였다. 2)게임오브젝트에 해당 스크립트를 추가하면 reset함수가 호출되어 변수의 값을 설정한것을 확인할수있다. 3)인스펙터에서 변수에 새로운 값을 입력하였다. 4)해당 컴포넌트의 컨텍스트 메뉴에서 reset을 선택한다. 5)기본값으로 재설정한것을 확인할수있다.
유니티에서 안드로이드 플랫폼에 빌드실행시 오류(android device is not reponding) 유니티에서 모바일 장치(안드로이드)에 빌드 및 실행시(build and run) 오류 해결방법 1)모바일 장치를 데스크톱에 연결하고 유니티에서 빌드를 진행한다(build and run) 2)모바일에서 USB 디버깅이 비활성화 되어있는 경우 유니티에서 빌드를 진행할때 다음과 같은 오류를 확인할수있다 (android device is not reponding) 3)모바일에서 USB 디버깅을 활성화한다. 삼성 갤럭시 모델의 경우 개발자 옵션에서 USB 디버깅을 활성화할수있다. 4)모바일 장치를 데스크톱에 다시 연결하고 USB 디버깅을 허용한다. 5)유니티에서 빌드를 진행한다(build and run) 6)..
유니티(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는 모바일 장치에서 성능과 전력 소비를 최적화하기 ..
유니티(Unity) 프로젝트 빌드에서 스크립팅 백엔드 IL2CPP IL2CPP (Intermediate Language To C++)는 유니티에서 제공하는 스크립팅 백엔드(scripting backend)입니다. 프로젝트를 빌드할때 선택할수있는 옵션중(mono, IL2CPP) 하나로 앱의 성능, 보안, 플래폼호환성을 개선하기위해 사용할수있습니다. IL2CPP를 사용하면 C# 코드의 MS 중간 언어(MSIL)에서 C++코드로 변환한 후 플래폼의 네이티브 코드로 컴파일하여 최종적으로 바이너리 파일을 생성합니다(exe, apk, xap) 대상 플래폼에 최적화된 네이티브 코드를 생성하여 다양한 플래폼에서 높은 성능을 보장할수있고(성능, 플래폼호환성) C# 코드가 C++로 변환된 후 네이티브 코드로 컴파일되기 때..
유니티의 텍스처 압축 포맷(texture compression format, TCF)유니티에서 임포트한 일반적인 이미지 파일 형식들(JPG, PNG, PSD, TGA, 기타)은 실시간 렌더링에 직접 사용되지않는다. 유니티는 이러한 형식들을 GPU에 최적화된 텍스처 압축 포맷(TCF)으로 변환한다. GPU는 변환된 텍스처를 비교적 더 적은 메모리로 더 빠르게 읽고 압축해제하여 렌더링할수있다. 기본적으로 유니티는 사용자가 선택한 빌드 플랫폼에 적합한 형식으로 텍스처를 자동 변환한다. 예에서 PC, standalone 플랫폼의 프로젝트에서 유니티가 이미지 소스 파일의 PNG 형식을 DXT1 형식으로 자동 변환한것을 확인할수있다(텍스처 import settings) 빌드에는 변환된 텍스처만 포함되며 이미지 소스..
유니티(unity)에서 오브젝트의 축 정렬하기(Quaternion.FromToRotation, Quaternion.LookRotation) Quaternion.FromToRotation, Quaternion.LookRotation 함수를 사용하여 오브젝트를 회전시키고 축 정렬하기 1)아래 예에서 rotateCylinder을 회전시켜서 y축을 targetCylinder의 y축과 일치시키고자한다. 2)아래 스크립트에서 Quaternion.FromToRotation함수를 사용하여 rotateCylinder의 회전을 설정한다. rotateCylinder의 y축(rotateCylinder.transform.up)을 targetCylinder의 y축(targetCylinder.transform.up)과 일치시킨다...
게임엔진 유니티를 공부할수있는 웹사이트 목록 유니티 공식 웹사이트(unity learn) https://learn.unity.com/ 유니티 공식 유튜브 채널 https://www.youtube.com/c/unity/featured 유니티 코리아 공식 유튜브 채널 https://www.youtube.com/c/UnityKoreaHi/videos Unity Korea 유니티 테크놀로지스 코리아 (Unity Technologies Korea)공식 유튜브 채널입니다. 유니티 개발과 최신 유니티 기술 소개 및 유니티로 만들어진 다양한 콘텐츠를 만나보실 수 있습니다. www.youtube.com 유니티 코리아 공식 네이버 카페 https://cafe.naver.com/unityhub 유니티 허브 (Unity Hu..
유니티 안드로이드 빌드 - 유효하지않은 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..