유니티(Unity)에서 오브젝트 풀(Object Pool) 의 유용성과 사용 예시게임에서 자주 생성하고 파괴되는 오브젝트가 많은 경우 오브젝트 풀(Object Pool)을 사용하면 메모리 할당 및 해제로 인한 성능 저하를 줄일 수 있습니다. 오브젝트 풀(Object Pool) 사용가능 예총알 발사 시스템 (Bullet Firing System) 총알을 발사할 때마다 새로운 총알 오브젝트를 생성하고 파괴하는 경우 적군 스폰 시스템 (Enemy Spawn System) 적군이 계속해서 스폰되고 사라지는 시스템에서 적 오브젝트의 생성과 파괴가 빈번하게 일어나는 경우 파티클 효과 시스템 (Particle Effects) 폭발, 연기, 불꽃 등 다양한 파티클 효과 짧은 시간 동안 생성되고 빠르게 사라지는 경우..
유니티(Unity) 안드로이드에서 동영상 광고(구글애드몹) 표시하면 앱 크래시 문제(Graphics device is null)구글 애드몹 동영상 광고를 표시하고나서 팝업 닫기(close) 이후 TMPro(텍스트 메시 프로)를 사용할때 앱 크래시가 발생합니다.1)안드로이드 로그캣에서 앱 크래시 로그를 확인합니다.Graphics device is null, TMPro.TextMeshProUGUI:Awake() 동영상 광고 팝업 닫기 이후에 앱 크래시2)예에서 보상형 동영상 광고 팝업 닫기(OnAdFullScreenContentClosed) 이벤트를 수신하면 OnRewarded함수를 호출합니다. 3)OnRewarded함수에서 TMPro 텍스트가 포함된 오브젝트를 생성할때 앱 크래시가 발생합니다. 4)해당 ..
구글 플레이 콘솔 안드로이드 앱 번들 파일(aab) 업로드 문제와 해결방법API 수준현재 앱이 33의 api 수준을 타겟팅하고 있지만 보안 및 성능에 최적화된 최신 api를 기반으로 앱을 빌드하려면 api 수준 34 이상을 타겟팅해야 합니다구글 플레이 콘솔에서 요구하는 최신 API로 설정합니다. 프로젝트 설정(project settings)의 플레이어(player)에서 대상 api 수준을 변경합니다(Target API Level)버전 코드이미 버전 코드가 1인 APK 또는 android app bundle이 있으므로 다른 버전 코드를 사용해야 합니다.프로젝트 설정에서 번들 버전 코드(Bundle Version Code)를 높입니다. 64비트 요구사항이 버전은 google play 64비트 요구사항을 준..
유니티 인앱결제(Unity In-App Purshasing, IAP) 구매 복원(Restore) 구현(안드로이드, iOS)사용자가 앱을 재설치할때 이미 소유하고있는 비소모 상품 또는 구독 상품이 거래 복원되어야합니다. https://docs.unity3d.com/Manual/UnityIAPRestoringTransactions.html안드로이드(구글플레이) 안드로이드(구글플레이)는 첫번째 초기화 단계(OnInitialized 함수)에서 사용자의 상품(비소모 또는 구독) 구매이력을 검색하고 소유한 모든 상품을 자동으로 복원합니다. 소유한 비소모품 상품이 존재하면 자동으로 해당 상품에 대해 ProcessPurchase 함수를 호출합니다. iOS(애플, 앱스토어) iOS 플랫폼에서는 거래 복원을 자동으로 수행..
유니티 인앱결제(Unity In-App Purshasing, IAP) 초기화 및 상품 구매 구현IAP 패키지의 샘플(Samples) 프로젝트에서 IAP 초기화 및 상품 구매구현 방법을 참고합니다.1)패키자 관리자(Package manager)에서 IAP 패키지를 설치합니다. 설치한 IAP 패키지의 samples에서 IAP 샘플 프로젝트를 확인할수있습니다. import를 클릭하여 상품 구매 buying consumables 샘플을 프로젝트로 가져오기합니다. 2)프로젝트에서 IAP 샘플 씬 및 스크립트를 확인합니다. 3)Purchasing, Purchasing.Extension 네임스페이스를 선언하고 IDetailedStoreListener 인터페이스를 상속합니다.Purchasing - 제품 목록 정의, 결..
유니티(Unity) 코드리스 인앱결제(Codeless IAP) 자동 초기화 설정코드리스(Codeless) IAP를 사용하면 코드없이 인앱결제를 구현할수있습니다. 앱에서 IAP(In-App Purchasing)를 사용하려면 먼저 IAP SDK를 초기화해야하는데 코드리스(Codeless) IAP에서 초기화는 IAP 버튼 또는 IAP 리스너의 첫번째 인스턴스가 생성될때 자동으로 발생합니다. 만약 앱이 시작될때(IAP 버튼 또는 IAP 리스너를 생성하기 이전) 자동으로 IAP 를 초기화하려면 Automatically initialize UnityPurchasing에 체크합니다. https://docs.unity3d.com/Manual/UnityIAPCodelessIAP.html 1)상단의 services에서 ..
유니티에서 중첩 프리팹(nested prefabs) 사용하기중첩 프리팹(nested prefabs)은 프리팹 안에 다른 프리팹을 포함할 수 있는 구조를 의미합니다. https://docs.unity3d.com/Manual/NestedPrefabs.html UI 제작에서 중첩 프리팹 사용 예시(Make UI with Nested Prefabs in Unity)https://youtu.be/4fkTbbxktpc
유니티(Unity) 구글 드라이브 파일 업로드 하기 2 - 패키지 설치, 파일 업로드Google Drive API 를 사용하여 유니티에서 사용자의 구글 드라이브에 파일을 업로드 및 다운로드할수있습니다. Google Drive API를 사용하려면 구글 클라우드 플랫폼에서 API 활성화 및 OAuth 클라이언트 설정이 필요합니다. 유니티(Unity) 구글 드라이브에 파일 업로드 하기 1 - Google Drive API, OAuth 클라이언트 설정 Google Drive SDK 설치1)유니티에서 Google Drive API를 사용하기위해 아래 깃허브에서 제공하는 Google Drive SDK를 설치합니다. https://github.com/elringus/UnityGoogleDrivegit URL를..
유니티(Unity) 구글 드라이브에 파일 업로드 하기 1 - Google Drive API, OAuth 클라이언트 설정유니티에서 Google Drive API 를 사용하여 앱 사용자의 구글 드라이브에 파일 업로드 및 다운로드하는 방법 Google Drive API를 활성화하고 OAuth 클라이언트 ID 만들기 사용자가 파일을 업로드 및 다운로드하려고 할 때 앱은 해당 사용자가 구글 계정에 로그인할 수 있도록 OAuth 인증을 요청합니다. 사용자가 권한을 얻으면 자신의 구글 계정으로 로그인하고 구글 드라이브에 접근하고 파일을 업로드 및 다운로드할 수 있습니다. 클라이언트 ID는 앱이 구글 서버와 통신하는 데 사용되며 개별 사용자의 권한은 사용자 로그인 시 처리됩니다.https://developers.g..
유니티(Unity) 물(Water) 쉐이더 및 시뮬레이션 제작 에셋 추천 모음(바다, 강, 호수, 기타)유니티에서 바다, 강, 호수, 수영장등 다양한 종류의 고품질 물 시뮬레이션 제작에 사용할수있는 에셋 추천 모음 렌더파이프라인 호환성(빌트인, URP, HDRP)과 지원 플래폼(모바일, PC, 콘솔, VR, WebGL)을 확인Stylized Water 2 https://assetstore.unity.com/packages/vfx/shaders/stylized-water-2-170386https://youtu.be/BRRejyG5Vtc Underwater Rendering for Stylized Water 2 (Extension) https://assetstore.unity.com/packages/vfx/..
유니티(Unity) 모바일(안드로이드, iOS) 구글 애드몹 광고가 표시되지않는 문제 문서 모음구글 애드몹 광고가 게재되지 않는 일반적인 문제 유형 https://support.google.com/admob/answer/9469204?hl=ko구글 애드몹 광고 오류 코드 설명(AdMob Error Codes & Logs) https://support.google.com/admob/thread/3494603?sjid=13233876566105748727-AP광고 표시되지않는 문제 해결도구 사이트 https://support.google.com/admob/workflow/14373595?visit_id=638624071805318020-587276607&rd=3해결방법 문서 모음 https://support..
유니티 안드로이드 빌드 앱 크래시(App Crash) 문제 해결방법 문서 모음프로젝트에 새로운 SDK를 추가하거나 유니티 버전 및 안드로이드 API 수준을 업데이트하고난 이후 발생하는 경우 안드로이드 앱 비정상 종료 https://developer.android.com/topic/performance/vitals/crash?hl=ko 유니티 안드로이드 개발 문제해결 https://docs.unity3d.com/kr/2020.3/Manual/TroubleShootingAndroid.html유니티 안드로이드 API 수준 34에서 앱 크래시 https://discussions.unity.com/t/android-14-api-level-34-in-unity-2020-lts-and-2021-lts/933479..