바인딩이 끊겼는데 화면은 멀쩡해 보이는 문제
UI Toolkit 바인딩이 실패하면 오류가 아니라 디자인할 때 넣어 둔 글자가 그대로 남습니다. 그게 가장 늦게 발견되는 버그입니다.
입력·에셋·성능 문제를 찾는 Unity 6 가이드
EN입력 먹통, 에셋 로드 실패, 프레임 드랍처럼 작업을 멈추게 하는 문제부터 다룹니다. Unity 6에서 어디를 먼저 봐야 하는지 순서대로 정리했습니다.
UI Toolkit 바인딩이 실패하면 오류가 아니라 디자인할 때 넣어 둔 글자가 그대로 남습니다. 그게 가장 늦게 발견되는 버그입니다.
다른 엔진 프로젝트에서 릴리스 검증기가 개발용 테스트 파일을 잡아냈습니다. 파일을 지우는 건 답이 아니었고 재빌드가 답이었습니다.
Ice Breaker는 드래그를 뗄 때 발리가 나간다. 손끝 떨림이나 작은 탭이 발사가 되지 않도록, 드래그의 최대 이동량이 문턱 이상일 때만 의미 있는 조준 제스처로 인정한다. 문턱은 max(22px, dpi×0.10)이다. 경계 양쪽을 PlayMode 테스트로 잠근 기록이다.
빌드 경로와 로드 경로를 헷갈리면 빌드는 성공하고 기기에서만 404가 납니다. 릴리스 뒤에는 되돌리기 어렵습니다.
Ice Breaker의 발리는 10발로 시작해 픽업으로 최대 99발까지 는다. 매번 새로 만들고 부수는 대신 생성·할당 부담을 줄이려는 설계로 공을 풀에 반납해 재활용한다. 진짜 위험은 오브젝트가 아니라 속도·델리게이트·트레일 같은 라이브 상태가 다음 발리로 새는 것이라, 카운터 왕복을 PlayMode 테스트로 잠갔다.
우리 게임 1.0.1 업데이트를 올릴 때 확인한 항목입니다. 대부분은 심사가 아니라 업로드 단계에서 걸립니다.
Ice Breaker에서 콤보는 측정되고 배지로 보여진 뒤 버려졌다. 1·2·3·5 배율을 붙이면서 첫 등급 아래 점수는 그대로 두고, 경계와 안내 규칙을 EditMode 테스트로 잠근 기록이다.
직접 만든 URP 패스는 렌더 그래프에서 대개 같은 자리에서 깨집니다. 카메라 타깃을 그냥 집어 쓰던 부분입니다.
다른 엔진으로 만든 우리 프로젝트에서 먼저 겪었습니다. 기준 스크린샷이 저장된 진행도에 의존하면 비교 자체가 성립하지 않습니다.
12턴 돌파전에서 주력 3단계와 보조 1단계를 얻을 길을 카드 후보에 남겼다. 진화 조건, 선택 가능성, 화면 설명을 따로 검사한 기록이다.
유니티 코리아 채널이 6.3 LTS 에디터 변화를 다뤘습니다. 새 기능을 보기 전에 우리 프로젝트가 무엇을 잃을 수 있는지부터 봅니다.
Ice Breaker에서 첫 직격과 동일 피해 기준 타수를 표시했다. 벽 반사 보너스는 반영하면서 전체 연쇄를 예측한다고 약속하지 않는 방법이다.
우리 브릭브레이커 WebGL 빌드를 줄일 때 텍스처부터 손대려 했습니다. 리포트를 열자 가장 큰 항목은 오디오였습니다.
명령줄 빌드는 실패해도 조용합니다. 인수를 아무리 맞춰도 로그 파일과 종료 코드를 먼저 붙잡지 않으면 원인이 안 보입니다.
조건보다 Has Exit Time과 Trigger 소비 타이밍이 먼저 걸립니다. 전환 인스펙터에서 시작해 라이브 값까지 순서로 봅니다.
흐림의 대부분은 Filter Mode와 Compression 두 줄에서 나옵니다. Point, 압축 끔, Mip Maps 끔, 정수배 스케일 순서로 잡습니다.
같은 DLL이 프로젝트 안에 두 개 있는 상태입니다. 에러에 파일명이 나오니 위치를 찾아 한쪽만 남기면 됩니다.
게임 입력이 살아도 UI 포인터는 별도 모듈입니다. EventSystem 모듈 교체와 액션 에셋 할당이 1분 안에 끝나는 1차 해결입니다.
에러 메시지 한 줄에 충돌 라이브러리와 두 버전이 다 나옵니다. 도구 버전을 고정하고 한쪽 버전으로 강제하면 끝납니다.
폰 하단에는 네 버튼을 남기고 저장과 갤러리는 메뉴에 모았습니다. 실제로 들어갔다 돌아오니 일본어 About과 Return이 겹쳤고, 폰 메뉴의 여백을 고쳤습니다.
키가 틀린 게 아니라 카탈로그와 번들이 마지막 성공 빌드의 것일 때가 많습니다. 콘솔 첫 줄로 갈림길을 먼저 정합니다.
Unity 6.6은 Dictionary를 직접 직렬화하지만 선언 형식과 SerializeField 조건이 맞아야 합니다. 중첩 컬렉션과 Prefab Override에서 놓치기 쉬운 경계도 함께 짚습니다.
빌드가 쓰지 않을 셰이더 배리언트를 잘라낸 결과입니다. Development Build로 재현을 고정하고 Always Included Shaders와 배리언트 컬렉션 순서로 좁힙니다.
배경음과 효과음의 오디오 압축 설정을 분리하고, AudioMixer 사이드체인 덕킹으로 대사나 폭발음이 나올 때 배경음을 자동으로 낮추는 사운드 구조를 구축합니다.
게임 밸런스 수치를 수정할 때마다 새로 빌드하지 않고 외부 balance.json 파일로 분리해 런타임에 읽어오는 경량 파싱 구조를 만듭니다.
생성형 AI로 제작한 여러 장의 캐릭터 표정/포즈를 개별 텍스처로 로드하면 드로우콜이 급증합니다. Sprite Atlas로 묶고 스크립트에서 안전하게 스왑하세요.
카페 운영과 하나의 시험으로 끝나던 이야기에 6주 후 장면을 붙였습니다. 데이트와 동업은 플레이어가 고르고, 앞서 쌓은 상태는 하나의 답변에 남겼습니다.
한·중·일 수만 자를 하나의 SDF 아틀라스에 구우면 텍스처 메모리가 폭증합니다. Dynamic SDF와 Fallback 체인을 구성하고 언어별 줄바꿈 차이를 처리하세요.
에디터 UI에서 손으로 AAB를 빌드하면 키스토어 비밀번호 누락이나 Target API 설정 실수가 잦습니다. C# 에디터 스크립트와 배치 파이프라인으로 안전하게 묶으세요.
New Input System에서 모바일 드래그 조작을 구현할 때 프레임 단위 폴링 대신 EnhancedTouch 이벤트와 Z축 보정 프로젝션을 써야 씹힘과 딜레이가 없습니다.
한 번 밀면 함께 움직이고, 먼저 잠든 고양이는 길을 막는다. 첫 세 방을 직접 정하고 해법이 있는 방을 고른 과정부터 Android 첫 화면과 심사 제출까지 기록했다.
생성형 AI 툴로 뽑은 스프라이트 배경에 체커보드 격자나 흰색 테두리가 구워졌다면 파이썬 외곽 탐색으로 마스크를 복구하고 Unity 텍스처 설정을 맞춰야 합니다.
Android 권한은 최종 Manifest 선언, 실행 중 요청, 현재 허용 상태 확인이 각각 필요합니다. 대화상자가 안 뜬다면 누락뿐 아니라 이미 허용됐거나 반복 거부된 상태도 확인해야 합니다.
Unity linker는 빌드 시점에 도달 경로를 찾기 어려운 코드를 제거할 수 있습니다. 외부 설정의 타입 이름처럼 동적으로만 찾는 대상은 필요한 범위만 Preserve나 link.xml로 남깁니다.
Unity 6000.5.3f1에서 두 소비자가 같은 에셋을 보는지, 현재 체력이 따로 남는지, 공유 변경과 런타임 복제가 어디까지 퍼지는지 직접 재현했습니다.
Unity 6000.5.3f1에서 600회 문자열 경로와 200회 Physics 쿼리를 직접 비교했습니다. 값 변경 가드와 재사용 버퍼의 효과, 버퍼가 꽉 찼을 때 결과가 잘리는 경계를 함께 봅니다.
Bounciness가 1이어도 접촉 법선 방향 속도가 Bounce Threshold보다 낮으면 반사가 사라진다. Unity 6000.5.3f1에서 기본값, 낮춘 값, 빗겨맞기, Continuous를 나눠 직접 측정했다.
같은 Play 실행에서 GameManager가 놓인 Boot 씬을 다시 열면 살아남은 객체 옆에 새 복제본이 생긴다. 실제 1→2→3 재현값을 기준으로 원인과 가드, Domain Reload를 분리해 잡는다.
Edit Mode의 씬 인스턴스 변경은 로컬 override가 됩니다. Prefab 에셋을 바꿔도 이미 override된 속성에는 반영되지 않으며, Play Mode 변경은 종료할 때 사라집니다.
초기 씬에서는 모든 Awake 뒤에 Start가 호출되지만, 서로 다른 Awake끼리의 상대 순서는 보장되지 않습니다. 같은 단계의 의존성을 코드로 드러내세요.
GameObject를 SetActive(false)로 끄면 그 오브젝트에 붙은 코루틴도 멈춥니다. MonoBehaviour의 enabled만 끈 경우와 결과가 다릅니다.
값이 사라진 게 아니라 Unity 직렬화 규칙 밖에 있는 경우가 많습니다. 필드인지, 타입인지, 컴파일 상태인지 순서대로 좁혀 보세요.
패키지를 설치했는데도 키 입력이 없다면 Active Input Handling, Action Map, PlayerInput 순서로 확인해 보세요.
모든 에셋을 Addressable로 바꾸기 전에 로컬·원격 범위와 Group, Label 규칙부터 정합니다.
느리다는 느낌만으로 코드를 고치기 전에 CPU Usage, GPU, GC Alloc부터 비교합니다.
SceneManager 호출이 맞아 보여도 빌드에서만 멈춘다면 Build Profile의 Scene List, 이름, 순서부터 봅니다.
URP 전환 뒤 화면이 분홍색이라면 텍스처를 다시 넣기 전에 Render Pipeline, Shader, 변환 범위부터 확인합니다.
각 글에서 확인한 Unity 버전과 공식 자료를 함께 볼 수 있습니다.