이 버그는 QA를 통과합니다
점수 라벨에 바인딩을 걸고 실행했는데 숫자가 안 바뀝니다. 콘솔은 조용합니다. 화면에는 UI Builder에서 넣어 둔 0 또는 Score가 그대로 보입니다. 바인딩이 끊겨도 요소는 자기 텍스트를 계속 그리기 때문입니다. 그래서 이 버그는 QA가 아니라 사용자 제보로 발견됩니다.
실패를 눈에 보이게 만드는 값
디자인 시점 텍스트를 실제 값처럼 넣지 않습니다. 바인딩이 죽으면 바로 티가 나는 문자열을 넣어 둡니다.
- 점수 라벨의 기본 텍스트를
0이 아니라--로 둡니다. - 이름 라벨의 기본 텍스트를
Player가 아니라NO BINDING으로 둡니다. - 개발 빌드에서만 배경색을 바꿔 두는 방법도 씁니다.
// 바인딩 대상 자체를 검사하는 편이 확실합니다
var label = root.Q<Label>("ScoreLabel");
if (label.GetBinding("text") is null)
Debug.LogWarning("ScoreLabel has no text binding at runtime");데이터 소스를 언제 붙이는지가 절반입니다
바인딩 경로가 맞아도 데이터 소스가 아직 없으면 아무 일도 안 일어납니다. UI 문서가 열리는 시점과 게임 상태가 만들어지는 시점 중 어느 쪽이 먼저인지 봅니다. 대개 UI가 먼저 열려서 첫 프레임에 빈 값이 그려집니다.
var document = GetComponent<UIDocument>();
document.rootVisualElement.dataSource = runtimeState; // 상태가 준비된 다음소스를 일부러 비워 보는 것이 유일한 확인법입니다
실행 중에 값을 강제로 바꿔 라벨이 따라오는지 보고, 그다음 데이터 소스를 비운 채로 한 번 더 실행합니다. 그 화면이 정상처럼 보이면 아직 안 고친 겁니다. 목록으로 넘어가면 문제 성격이 바뀝니다. 반복되는 항목은 바인딩보다 스크롤 뷰의 요소 재사용이 먼저 깨집니다.
검증 범위
공식 문서 대조
검증일
Unity 공식 문서와 본문의 코드·절차를 대조해 공개 준비 상태로 전환했습니다. 별도 Unity 프로젝트나 실기기에서 직접 재현한 결과는 아니며, 특정 버전·기기 문의가 들어오면 해당 환경에서 후속 확인합니다.
확인한 공식 문서UI Toolkit 런타임 바인딩 ↗