728x90

GameDevelop 96

Unity 보상형 광고(AdMob) – 광고 시청 후 앱 종료/버튼 안 눌림 오류 해결 방법

문제 상황Unity에서 Google AdMob 보상형 광고를 붙였을 때, 광고는 잘 뜨지만 이런 문제가 생겼다.광고 시청 후 앱이 강제 종료됨UnityException: set_timeScale can only be called from the main thread 오류 발생광고 후 이어하기 버튼이 먹통이 됨처음에는 Gradle, constraints, App ID 설정 문제로 삽질을 했지만, 실행 후 튕기거나 UI가 막히는 진짜 원인은 따로 있었다. 원인광고 SDK의 콜백(ex: OnAdFullScreenContentClosed, RewardedAd.Show)은 Unity 메인 스레드가 아닌 다른 스레드에서 실행된다. Unity의 모든 API (Time.timeScale, GameManager.Con..

트러블슈팅-빌드시 안드로이드 유니티앱 바로꺼짐

문제M1 유니티 안드로이드 빌드 해보려고 애뮬레이터를 깔았는데 앱이 계속 실행 자체가 안되고 바로꺼짐. 구글링 하니까 광고 자체 오류라고 해서 다해봤는데 안됨 해결이거 콘솔창에 입력하고 애뮬레이터에서 실행해보니까 cd ~/Library/Android/sdk/platform-tools./adb logcat -s AndroidRuntime 이런 applicatoin ID가 잘못됐다고 한다 지금 Google Mobile Ads (AdMob) SDK가 초기화되면서 유효하지 않은 Application ID 때문에 앱이 죽었다AdMob은 앱 실행 시 AndroidManifest.xml 안에 meta-data 태그로 진짜 앱 ID가 등록돼 있어야 한다.Unity 기본 상태에서는 ca-app-pub-39402560..

[Unity] 포탈 근처에 [V] 프롬프트 UI 띄우기 + 입력 처리

Unity에서 플레이어가 포탈 근처에 다가가면 [V] 입력 안내 UI를 띄우고, V 키를 눌러 다음 맵으로 이동하거나 마을로 돌아가는 방식을 구현했다. 구현 목표포탈 범위에 들어갔을 때 [V] 들어가기, [V] 다음으로, [V] 마을로 등의 프롬프트 UI 표시V 키 입력 시 특정 기능 실행 (예: 씬 이동, 튜토리얼 시작 등)포탈 범위 밖으로 나가면 프롬프트 자동 숨김같은 구조로 다양한 포탈에 적용 가능하도록 설계 기본 구조Portal_1 (빈 GameObject)├─ Circle (포탈 그래픽)└─ PromptUI (World Space Canvas or Sprite) ├─ Icon_V (버튼 아이콘 이미지) └─ Text (프롬프트 텍스트: "들어가기" 등)📌 PromptUI는 비활성화된..

Unity에서 인벤토리와 세팅창 ESC / Tab 키 충돌 방지하기

오늘은 게임플레이 중 ESC와 Tab 입력이 서로 간섭하지 않도록 인벤토리와 세팅창을 깔끔하게 제어하는 방법을 정리했다. 문제 상황ESC → 세팅창 열기/닫기Tab → 인벤토리 열기/닫기하지만 ESC로 인벤토리를 닫으면 같은 프레임에서 세팅창이 열리거나, 세팅창이 켜져 있어도 Tab으로 인벤토리가 열리는 문제가 발생했다. 해결 방법핵심은 각 UI가 켜져 있는 상태에서는 다른 UI 입력을 무시하는 것이다이를 위해 각 매니저 스크립트에 IsOpen 속성을 만들어 상태를 확인하도록 했다. SettingsManager 수정public bool IsSettingsOpen{ get { return _settingsUI != null && _settingsUI.activeSelf; }}void Update(){..

여러 오브젝트가 각각 말풍선을 띄울 때 싱글톤 쓰면 안 되는 이유

구현목표유니티에서 여러 캐릭터(예: 새)가 각각 말풍선을 띄우는 연출을 만들 때 Singleton(싱글톤)을 사용해서 말풍선 매니저를 구성하려고 했다.하지만, 여러 오브젝트가 각각 말풍선을 제어해야 하는 경우 싱글톤은 오히려 쓰면 안된다. 싱글톤 사용문제public static PinchBirdSpeech Instance는 씬에 오직 하나의 객체만 존재한다는 전제에서만 안전하게 동작한다.하지만 새가 여러 마리 있다면?각 새마다 PinchBirdSpeech 스크립트를 붙이게 되고결국 마지막에 생성된 하나만 살아남고, 나머지 인스턴스는 덮어씌워져버린다.결과적으로 ShowDialogue()를 호출해도 항상 마지막 새만 반응하는 오류가 생기게 되었다. 해결방안멀티 캐릭터가 각각 말풍선을 제어하는 경우, Si..

Unity Master Audio로 맵별 배경음악 자동 변경하기

이번에는 Unity에서 Master Audio 에셋을 활용해서 맵이 바뀔 때마다 자동으로 배경음악이 바뀌는 시스템을 구현하였다. 목표맵에 설정해놓은 배경음악(BGM)을 재생MasterAudio의 Playlist 시스템을 활용씬 전환 없이, 같은 씬 내 맵 순환 구조에서도 BGM이 자연스럽게 바뀌도록 구현 작업 개요사용하는 시스템MasterAudio: BGM 관리MapManager: 맵 전환 관리MapComponent: 맵 정보 + 타입 보유PlaylistController: 실제 음악 재생 MapComponent에 맵 타입 설정public enum MapType { Tutorial, ShallowForest, DeepForest, Town, MiddleBoss, FinalBoss }public class..

유니티 말풍선 따라다니기 구현 (TextAnimator + SpeechBubble)

사용한 에셋Text Animator for Unity텍스트를 타자 치듯 출력해주는 애니메이션 에셋 오늘 만든 구조 요약PinchBird└─ SpeechBubble (Overlay Camera) └─ Canvas └─ BubbleBackground └─ Text (TMP) ← TextAnimatorPlayer 붙이기 SpeechBubble은 핀치새 머리 위에 뜨는 말풍선 UIText (TMP)에 TextAnimatorPlayer 컴포넌트를 붙여 타자 효과를 넣었다. Canvas 설정항목설정Render ModeScreen Space - CameraRender CameraMain Camera 드래그Canvas ScalerConstant Pixel SizeOrder in ..

728x90