유니티에서 안드로이드 프로파일링하기(profiler) 유니티에서 데스크톱에 연결된 안드로이드(모바일 장치)의 어플리케이션(게임)을 프로파일링 하는 방법 1)데스크톱에 모바일 장치를 연결하고 build settings에서 development build에 체크하고 build and run을 클릭한다(빌드를 시작하기전에 모바일 장치에서 USB디버깅을 허용해야한다) 2)빌드가 완료되면 모바일 장치에 어플리케이션이 설치되며 게임이 실행된다. 3)프로파일러를 표시하기위해 상단의 window 메뉴에서 analysis의 profiler를 선택한다. 4)프로파일러 타겟(target)에서 현재 연결된 모바일 장치(안드로이드 플레이어)를 선택하면 실행중인 게임에 대한 프로파일링이 진행되는것을 확인할수있다. 5)녹화 버튼을..
c# Enum.Parse함수로 문자열을 열거형 개체로 변환 1)아래 예에서 열거형을 선언하고(animalTYPE) 해당 열거형 변수를 선언하였다(myanimalTYPE) 2)Enum.Parse 함수의 매개변수로 열거형 형식(typeof(animalTYPE))과 문자열을("rabbit")을 지정한다. 3)Enum.Parse 함수에서 문자열에 해당하는 열거형 개체를 반환한다.
유니티에서 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)..
유니티에서 GPU 사용 프로파일러 모듈(GPU usage profiler module)이 지원하는 플랫폼 목록 유니티 프로파일러에서 GPU usage profiler module는 어플리케이션의 GPU 사용량(소요 되는 시간 및 위치)을 확인할수있다. 유니티 2020.3버전의 경우 해당 프로파일러 모듈을 제한적으로 사용할수있으며 아래 표에서 GPU 사용 프로파일러 모듈이 지원하는 플랫폼을 확인할수있다(2020.3버전)
유니티에서 모바일에 빌드실행한 게임 디버깅(android device monitor) 안드로이드 스튜디오에서 제공하는 툴인 android device monitor를 사용하여 모바일에 빌드 실행한 게임을 디버깅하는 방법 안드로이드 스튜디오의 android device monitor 지원 중단 및 삭제 https://developer.android.com/studio/profile/monitor?hl=ko 1)유니티에서 게임을 모바일(안드로이드)에 빌드 및 실행한다(build and run) 2)안드로이드 SDK 설치 위치에서 tools 폴더의 monitor.bat을 실행한다. 3)android device monitor의 devices에서 현재 연결된 모바일 디바이스를 확인할수있다. 4)logcat에서 ..
유니티에서 모바일(안드로이드)에 빌드실행한 게임을 디버깅하기(명령프롬프트, 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)시스..
유니티 점진적 가비지 수집(incremental garbage collection) 유니티의 가비지콜렉터는 Boehm–Demers–Weiser garbage collector를 사용한다. https://www.hboehm.info/gc/ 가비지콜렉터가 가비지 수집을 수행할때 프로그램 코드 실행 및 CPU 메인스레드를 중지하며 전체 힙을 검사한다(stop-the world garbage collection) 힙의 모든 오브젝트를 처리한 이후에 어플리케이션 실행을 재개함으로 성능에 영향을 미치는 gc 스파이크(중단으로 인해 프로파일러 윈도우의 그래프에서 나타나는 큰 스파이크)가 발생한다. incremental mode는 가비지콜렉터가 힙의 모든 오브젝트들을 처리하기 위해 긴 중단을 한번만 수행하는 대신에 작..
유니티(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)에서 라이트의 그림자 설정(cast shadow, receive shadow) 1)예에서 씬에 sphere, cube 오브젝트를 생성하였다. cube 오브젝트는 바닥에 그림자를 드리우고(cast shadow) sphere 오브젝트의 그림자를 받는것을 확인할수있다. 2)빛에 의한 그림자를 생성하려면 라이트 오브젝트의 shadow type을 설정한다(hard shadows, soft shadows) 3)cube 오브젝트의 mesh renderer에서 cast shadows를 활성화하면(on) cube오브젝트에 의한 그림자를 생성한다. receive shadows에 체크하면 cube 오브젝트의 표면에 다른 오브젝트에 의한 그림자를 생성한다. cube 오브젝트의 receive shadows 비..
유니티 URP에서 알파 클리핑 사용하기(alpha clipping) 알파 클리핑(alpha clipping)은 투명한 영역과 불투명한 영역의 경계가 존재하는 투명 효과를 표현할때 사용할수있다. 예를 들어 동물의 날개, 나뭇잎등에 알파 클리핑을 사용하면 비교적 저해상도 모델에서 세부적인 표현이 가능하다. 1)알파클리핑을 사용하려면 텍스처에 알파 채널을 추가하여 투명한 영역과 불투명한 영역을 설정한다. 2)유니티에서 불러오기한 해당 텍스처의 알파 채널을 확인할수있다(import settings) 3)모델의 재질에서 알파 클리핑을 지원하는 URP의 빌트인 셰이더를 선택한다(lit, simple lit, unlit, baked lit, complxe lit) 4)재질의 속성에서 알파 클리핑(alpha clipp..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.