드래그 표시선을 화면 좌표의2D Canvas 선으로 수정
진행3D 경계·고도 계산을 사용하던 표시선을 씬 Canvas의2D 선과 화살촉으로 교체했습니다. 독립127개와 컴파일·씬 검사는 통과했으며 실제 화면 검증은 미실행입니다.
작업 결과
화면 위에서 시작점과 현재 포인터를 잇는2D 선·화살표를 표시하도록 구현했습니다. 선 표시에서는 지면·카메라 투영·비행 고도 계산을 제거했고 실제 폭격 경로 계산은 별도로 유지했습니다.
변경 내용
재현 조건
Unity6000.0.83f1 / URP17.0.4 / City Prototype 씬 / Screen Space Overlay Canvas
재현 순서
사용자 보고: 도시에서 화면을 드래그하면 표시선이 이상하게 나타남. 이후 표시선은3D가 아닌2D 화면 좌표로 요청함. 에이전트의 동일 Play 재현은 화면 조작 금지로 미실행.
기대 동작
시작점과 현재 포인터를 화면 좌표의 일반2D 선으로 연결하고 방향 화살촉을 표시한다.
실제 동작
사용자의 선 이상 관찰을 사실로 수용했다. 기존 소스는 표시선에도 DirectionalTargets의3D 경계/고도 좌표를 사용했다. 에이전트의 실제 화면 관찰·동일 증상 재현은 미실행이다.
원인
확인된 구조: 기존 표시선이3D 비행 구간 계산에 결합되어 있었다. 실제 보였던 이상 현상의 정확한 모양과 직접 원인은 Play로 재현하지 않아 미확인이다.
적용 내용
- 기존 LineRenderer 표시선 생성과 프리뷰 머테리얼 필드/씬 연결을 제거했습니다. 과거 프로젝트 소유 셰이더 자산은 이력용으로 보존하되 현재 표시선에서 사용하지 않습니다.
- Canvas에 Image3개(선1개·화살촉2개)를 직접 저장했습니다. 기본 색·높이4·비활성 상태·Raycast Target 비활성·부모/앵커를 씬에 저장했으며 화살촉 크기18은 Inspector의 Drag Arrow Head Size로 편집 가능합니다. 런타임 UI 생성·폰트 대입은 없습니다.
- ScreenPointToLocalPointInRectangle로 시작/현재 포인터를 Canvas 좌표로 옮기고 길이·각도·화살촉을 갱신합니다. 표시 함수는 지면 좌표·프러스텀·비행 고도를 사용하지 않습니다. 지면과 교차하지 않는 위치에서도2D 표시 자체는 동작하도록 입력 표시와 공격 유효성 판단을 분리했습니다.
- 짧은 드래그·UI 위·화면 밖에서는 표시를 숨기고, 해제·ESC·일시정지·포커스 이탈·초기화에서도 숨깁니다. 실제 출격은 기존 지면 유효성 조건을 유지합니다.
검증
독립127개 시나리오 통과: 기존122개와 신규5개(시작/현재 포인터 끝점 보존, 화살촉 방향/대칭,360방향의 끝점·역방향 화살촉, 짧은 선의 화살촉 축소,0길이 거부). 설치된 Unity 실제 참조 어셈블리 대상 Runtime·Editor 컴파일 통과. 씬219개 오브젝트·466개 로컬 참조·122개 외부 참조·9개 버튼 이벤트와 Overlay Canvas·Image3개·높이4·비활성/Raycast 설정을 확인했습니다. 표시 함수의 Screen→Canvas 전용 좌표, 기존3D LineRenderer 제거와 UI 생성 코드 없음도 확인했습니다. 외부 원본5840개 파일 해시 변경0건입니다. 컴퓨터 유즈·Unity 실행/Play·씬 재열기·전후 캡처는 사용자 제한으로 미실행입니다. 가짜 화면을 만들지 않았으며 표시 문제 해결 완료/버그 종료로 처리하지 않았습니다. 교훈 검토: 사용자 명시적2D 요구를 반영했고 기존 UI 직접 저장·검증 범위 구분 규칙으로 충분하여 전역 변경 없음.
남은 사항
실제 Unity 표시·터치/마우스 조작·크기/해상도 변화·가독성·취소 상태·씬 재열기·전후 화면은 미검증입니다. 버그는 실제 표시 검증 전까지 진행/검증 대기 상태입니다.
작업 시간
- 제안 시간: 5~10분
- 실제로 완료된 시간: 시작2026-11-07 00:57:38 KST. 구현·독립 검사약5분, 실제 표시와 공개 확인 별도.
- XERJ: 미사용 — XERJ 도구 제공 없음 — rg·현재 소스·씬·독립 실행 검사 사용
Tracefolio REPORTS & ISSUES