유니티(Unity) 보간(interpolation)함수 종류 및 예시Mathf.Lerp 주어진 두 값 사이를 선형적으로 보간(interpolate)하는 데 사용됩니다. t는 0과 1 사이의 값을 가지며 t가 0이면 a를 반환하고 t가 1이면 b를 반환합니다. t가 0과 1 사이에 있으면 a와 b 사이에서 보간한 값을 반환합니다. float a = 0f; float b = 10f; float t = 0.5f; float result = Mathf.Lerp(a, b, t); //result는 5f입니다. https://docs.unity3d.com/ScriptReference/Mathf.Lerp.html Mathf.SmoothStep Mathf.Lerp와 유사하게 주어진 값 사이를 보간하지만 부드러운 단계적..
유니티(Unity) 애니메이터 오버라이드 컨트롤러 사용하기(Animator Override Controller)애니메이터 오버라이드 컨트롤러(Animator Override Controller)는 원본 애니메이터 컨트롤러(Animator Controller)와 동일한 구조와 로직을 사용하지만 새롭게 할당된 애니메이션을 플레이합니다.1)애니메이터 컨트롤러(Animator Controller)를 생성합니다. 2)애니메이션(Animation)을 생성합니다. 키프레임이 존재하지않는 애니메이션으로 준비합니다. 3)애니메이션을 추가하고 두 애니메이션의 이름을 설정합니다. 5)애니메이터 윈도우(Animator)에서 원본 애니메이터 컨트롤러의 상태 변환을 설정합니다. 6)키프레임이 존재하지않는 두 애니메이션을 할당..
유니티(Unity) 모바일(안드로이드, iOS) 게임 프레임 저하 문제해결(target Framelate, Vsync Count)1)프로젝트 설정(project settings)의 quality에서 대상 플래폼의 품질 수준을 선택합니다. 예에서 안드로이드 플래폼의 품질 수준 Performant를 선택합니다. 2)Rendering의 VSync Count를 Don't Sync로 설정합니다. 3)게임을 최초 실행시 한번 목표 프레임레이트를 설정합니다(Application.targetFrameRate = 60; 또는 Application.targetFrameRate = 30;)https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html
유니티에서 안드로이드 로그캣(android logcat)을 사용하여 디버깅1)USB 케이블을 사용하여 안드로이드 장치를 PC에 연결합니다. 2)상단의 window 메뉴에서 analysis의 android logcat으로 이동합니다. 3)연결된 안드로이드 장치가 표시되지않는것을 확인할수있습니다(no device) 4)장치의 설정에서 개발자 옵션의 USB 디버깅을 활성화합니다. 4)이 컴퓨터에서 항상 허용 옵션을 체크하고 USB 디버깅을 허용합니다(이 컴퓨터에서 항상 허용을 체크해제하면 장치를 PC에 연결할때마다 USB 디버깅 허용을 재활성화해야합니다) 5)안드로이드 로그캣 윈도우에서 연결된 장치를 확인할수있습니다. 6)필터(Filter)에서 로그를 확인할 안드로이드 앱 런처 또는 앱 패키지를 선택합니다...
안드로이드 앱 업데이트 및 삭제와 유니티 사용자 데이터 경로(persistentDataPath)구글플레이에서 앱을 설치하면 생성되는 Android/data// 폴더는 앱이 사용자 데이터를 저장하거나 캐시 데이터를 저장하는 데 사용되는 중요한 위치입니다(packagename은 앱의 패키지이름입니다)장치에서 앱을 삭제하면 이 폴더가 제거되며 앱을 업데이트하면 유지됩니다. files 폴더는 영구 데이터(사용자 설정, 다운로드 파일,기타)를 저장하는데 사용되며 이 폴더의 데이터는 사용자가 앱을 삭제하거나 명시적으로 데이터를 지우기전까지 유지됩니다(앱 업데이트로 제거되지않습니다)유니티에서 Application.persistentDataPath를 사용하여 files 폴더에 접근할수있습니다.https://doc..
유니티(Unity)에서 앱 런처(launcher) 아이콘 설정하기1)앱 런처 아이콘은 장치의 홈 스크린(home screen)과 런처 윈도우(launcher window)에 표시되는 아이콘입니다. 2)프로젝트 설정(project settings)의 player에서 icon으로 이동합니다. 3)API 수준에 따라서 지원하는 몇가지 아이콘 타입을 확인할수있습니다. 4)Adaptive icons(안드로이드 API 26 이상)를 선택하고 해상도에 대한 배경이미지(background)와 전경이미지(foreground)를 설정합니다(432x432, 324x324, 216x216, 162x162, 108x108, 81x81)안드로이드 적응형 아이콘(Adaptive icons)https://developer.andr..
유니티(Unity) 프로젝트의 Temp 폴더 확인하기유니티 프로젝트의 Temp 폴더는 에디터에서 빌드를 진행하면 임시적으로 생성되는 폴더입니다. 빌드를 완료하고 에디터가 종료되기전까지 존재하며 에디터를 종료하면 사라집니다.
유니티 안드로이드 프로젝트에서 인앱 구매 및 결제(Unity IAP, In app purchasing) 사용하기(유니티 IAP 설정, 구글 플레이 콘솔 상품 만들기, 코드리스 IAP 구매)프로젝트를 유니티 서비스로 설정하기(Unity Services)1)유니티 계정으로 로그인하고 프로젝트 설정(project settings)의 Services에서 유니티 프로젝트 ID를 생성합니다. 2)서비스 일반 설정을 진행하고 저장합니다. In app purchasing 패키지 설치 및 설정 구성3)패키지 관리자(package manager)에서 In app purchasing 패키지를 설치합니다. 4)프로젝트 설정의 Services 하위 In-App Purchasing에서 IAP를 활성화합니다. 5)현재 빌드 대..
유니티(Unity) 배경 스크롤 애니메이션 만들기(Repeat, RawImage.uvRect)1)스크롤 애니메이션에 사용할 배경 이미지를 준비합니다. 배경 이미지는 상하좌우가 연속적인 이미지를 준비합니다(seamless) 2)이미지 텍스처의 import settings에서 텍스처 타입(Texture Type)의 스프라이트(Sprite)를 선택하고 Wrap Mode의 Repeat를 선택하고 적용합니다. 3)씬에 Raw Image 오브젝트를 생성합니다. 4)Raw Image의 텍스처에 배경 이미지 텍스처를 설정합니다. 5)새로운 스크립트를 생성하고 아래 코드를 추가합니다. 업데이트 함수에서 RawImage의 텍스처 좌표를 이동합니다. 6)RawImage를 참조하고 이동 속도를 설정합니다.
유니티(Unity) 다수의 UI 요소를 일괄적으로 투명도 설정(CanvasGroup)1)씬에 다수의 UI 오브젝트를 구성합니다(이미지, 버튼, 텍스트) 2)일괄적으로 투명도를 설정할 오브젝트들을 선택하고 crate empty parent를 선택합니다. 3)해당 오브젝트들의 상위에 부모 오브젝트가 생성된것을 확인할수있습니다. 4)부모 오브젝트에 캔버스 그룹 컴포넌트를 추가합니다(CanvasGroup) 5)캔버스 그룹의 Alpha 수치를 조절하여 캔버스 그룹 하위에 존재하는 오브젝트의 투명도를 설정합니다.
유니티(Unity) 에디터 색상 테마 변경하기(Dark, Light)1)현재 에디터의 색상 테마를 확인합니다. 2)상단의 edit 메뉴에서 preferences로 이동합니다. 3)general의 editor theme를 확인합니다. 4)에디터 테마를 변경합니다(Dark, Light) 5)변경한 에디터 테마가 적용된것을 확인할수있습니다.
유니티(Unity) 비동기 씬 로드 구현(LoadSceneAscync, AsyncOperation)1)씬 로드 작업 진행률을 표시할 UI(이미지와 텍스트)를 구성합니다. 2)이미지의 이미지 타입을 Filled로 설정합니다. 3)비동기 씬 로드를 위한 스크립트를 추가합니다. 4)비동기 씬 로드를 시작합니다. 씬이 완전히 로드될때까지 작업진행률(progress)을 업데이트하고 이미지와 텍스트에서 이것을 표시합니다. 진행률이 1.0에 도달하고 isDone이 호출되면 작업이 완료되어 씬을 활성화합니다. 5)작업진행률을 표시할 이미지와 텍스트를 참조합니다. 6)빌드 설정에서 씬을 추가합니다. 7)게임을 플레이하면 비동기 씬 로드를 시작하고 완료하면 대상 씬을 활성화합니다.(씬에 로드할 내용이 많지 않으면 진행률..