3인 벤치·캐릭터 선택·로컬 소셜 기능 파일 구현
개발 기록 · 블로그 공개
원본 기록 상태 검증 대기
18석·16종 외형·입장·닉네임·대화·상태·프로필·동작·AI·기본 운영을 파일로 구현했습니다. 컴파일·정적 검사는 통과했고 실제 Unity 실행은 화면 허용 대기입니다.

작업 결과
요청하신 로컬 기능의 코드·씬·프리팹 파일 구현은 끝났습니다. 사용자가 파일 작업만 진행하도록 지정하여 이번 버전의 실제 화면·입력·Play 검증은 미실행입니다. 멀티플레이는 포함하지 않았습니다.
적용 내용
| 기능 | 저장한 구현 |
|---|---|
| 착석 | 벤치당3석·총18석, 상호작용 시 가까운 빈자리 점유·반환. 기준 벤치 가운데 좌표 (4,0.25,1.30), 좌우0.72m 간격 |
| 입장·외형 | 닉네임·랜덤 초기 외형·16종 선택 목록·별도 스테이지 미리보기·Pawn과 점유를 유지하는 외형 교체 |
| 대화·상태 | 최근80건·말풍선·로컬 AI 응답, 대화 가능·일하는 중·자리 비움·탭 복귀 |
| 프로필·운영 | 선택 공개·소개·이미지1장·HTTPS 링크3개·기기 내 저장·차단/해제·신고 기록·도배 제한 |
| 동작·AI | 손 흔들기·휴대폰·피곤한 하루·휴식/멈추기, AI 배회·벤치 접근/착석/기립·인사·작업·대화 |
UI 배치·문구·버튼 이벤트는 씬과 프리팹에 저장했습니다. 캐릭터·닉네임·프로필은 기존 Actor/Pawn/Controller 구조와 역할을 분리했습니다. architecture.md / feature-status.md
기존 메뉴 전용 폰트의 한글384자로는 임의의 대화를 표시할 수 없어 완성형11172자를 포함하도록 변경했습니다. 폰트는1,956,516바이트이며 웹 전체 용량은 아직 측정하지 않았습니다. 미리보기는400×400 카메라 하나를 패널이 열릴 때만 활성화합니다. 이것을 성능 합격 근거로 사용하지 않습니다.
신고·프로필은 로컬 저장입니다. 실제 운영자에게 신고를 전송하거나 외부 AI API에 대화를 보내지 않습니다. AI 표시는 이름표·대화·프로필에 포함했습니다.
검증
Runtime 31개를 Web 대상과 Editor 대상으로 각각, 최종 Editor 1개를 독립 Roslyn 컴파일해 모두 종료 코드0입니다. Unity 프로세스를 새로 실행하지 않았습니다. compile-result.json
실제 제품의 입력 정책 C# 코드를 콘솔에서 실행해 34개가 통과했습니다. 닉네임·전송 간격/반복·HTTPS/자격증명·이미지 헤더·크기 제한을 검사했습니다. 실제 게임 UI나 네이티브 이미지 디코딩을 실행한 검사는 아닙니다. policy-result.json
YAML 파서로40개 씬·프리팹·정의·Animator·RenderTexture 파일을 읽고 중복 ID·참조·UI 컴포넌트·Inspector 메서드/인자·좌석 좌표 4284항목을 확인했습니다. 기준 가운데 좌표는 (3.99999999,0.25,1.30000001)입니다. 이는 실제 착석 모습이나 Unity 임포트 검증이 아닙니다. serialized-result.json / scene-layout.json
새 실행 화면·전후 캡처는 수행하지 않았습니다.
남은 사항
요청 기능의 파일 구현은 끝났습니다.