- ArenaWalker.body 가 비어 있어 스크립트가 자기 자신(빈 오브젝트)을 움직이고 있었다
→ body = PC_LH_M05 로 연결(PD 실측 보고 「캐릭터 움직임이 없어」의 직접 원인)
- body 가 비어 있던 탓에 Start() 의 Animator.fireEvents=false 도 캐릭터에 적용되지 않아
'Event_Idle' has no receiver! 가 33건 발생 → 빈 수신자 ArenaAnimEventSink 를 붙여
에디트/플레이 양쪽에서 차단(fireEvents 는 런타임 전용이라 에디트 모드를 못 막는다)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Animator.fireEvents=false: 클립 Idle 이 쏘는 Event_Idle 의 수신자(WizardActor)를
§1 에서 떼어 내 "AnimationEvent … has no receiver!" 가 2초마다 났다(실측 6회/12초).
빈 수신자 컴포넌트를 붙이는 대신 이벤트 발사를 끈다 → Play 콘솔 error 0.
- autoWalk 프로브(기본 off): 중앙→14 m 소요 시간을 실측하기 위한 씬 전용 스위치.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- PC_LH_M05 씬 인스턴스에서 게임 컴포넌트 7종 제거(WizardActor·NavMeshAgent·
Rigidbody·CapsuleCollider·SkinnedMeshAfterImage·WLPcScaleCompensator·
WLWeaponFitter) → 게임 초기화 없이 Update 가 돌며 터지던
KeyNotFoundException: 'Freeze'(Actor.cs:1065) 제거. 프리팹 수정 0.
루트 스케일 1.05266 · 몸 높이 1.21651 m 는 제거 전후 델타 0 실측.
- Main Camera 를 Demo.unity 실측값으로 이식: 직교 size 10 · euler(30,60,0)
· near 0.3 / far 500 · clear Skybox · depth -1 · HDR/MSAA on
+ UniversalAdditionalCameraData(post off · AA none · rendererIndex -1).
- 씬 라이트 3개에 UniversalAdditionalLightData 추가(데모와 동일 구성).
- Terrain.drawTreesAndFoliage false→true(데모와 동일).
- ArenaWalker.cs(신규 · 씬 전용): WASD 이동 + 방향 회전 + idle/run 상태 재생
+ 카메라 추적 + Terrain.SampleHeight 접지. 속도 3.9 / 회전 300 은
LH_M05.prefab NavMeshAgent 실측값.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 새 씬 Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity (기존 씬·빌드 씬 목록 수정 0)
- 바닥 = Unity Terrain 80x12x80 + Demo_Grass/Demo_Dirt 레이어 + Demo Terrain.mat(ToonTerrain) — 데모 실측 방식 그대로
- 경계 = 반경 14 m 에 Stone_1/2 + Tree + Arch_Large/Small · 연못 Water_Plane · 배경 Windmill/House
- 캐릭터 LH_M05 중앙(스케일 1.05266 = f_Scale 0.7 x 보정 1.5038) · 프리팹 수정 0
- 조명/ambient/fog/스카이박스 = 데모 실측값 그대로
- 머티리얼 14종(+Terrain.mat) · 삼각형 29,875 (목표 15종/5만 이내)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 결정 「1. 바꿔. 2. 붉은 기사 M05로 해」 · 조사서 §C① ⓒ안.
- 새 프리팹 Assets/Res_Addr/PC/LH_M05.prefab — M05 모델 + Ai01 컴포넌트 구성 이식
(WizardActor·NavMeshAgent·Rigidbody·CapsuleCollider·SkinnedMeshAfterImage · Layer 3 · rootMotion 0)
무기 소켓 7/7 을 Ai01 과 **같은 본 경로**에 같은 로컬 TRS 로 재생성 → ClassConfig 무기 인덱스 무변경
Animator 아바타 = M05 자신의 Humanoid → 기존 pcanim_* 12개 + 이벤트 250개가 그대로 리타깃
- 되돌리기 스위치 WLCharacterSwapSettings(SO) — enabled/pcPrefabName/verboseLog · off 면 원본 100 %
- 크기 보정 WLPcScaleCompensator — 원 높이 1.1316 × 1.5038 = 1.7017 m(= Ai01)
→ 인게임 1.1912 m · 로비 1.7017 m 로 Ai01 과 동일. **테이블 ClassConfig 수정 0**
(f_Scale 을 고치면 스위치를 껐을 때 Ai01 이 1.79 m 가 되어 되돌리기가 깨진다)
- CapsuleCollider 는 루트 스케일을 받으므로 로컬 값을 1.5038 로 나눠 월드 크기를 Ai01 과 동일하게
- 원본 수정 = PCInfo.cs 1줄(상한) · Addressables 0 · Assets/Suriyun/** 수정 0(참조만)
실측: 머리:키 5.49 → 2.55 · 도트A 머리 픽셀 7.6 → 16.5 px (+115.5 %)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
FarmingIsland 임포트가 manifest 에 cinemachine 2.10.7 과 toonshader 0.13.0-preview 를 추가했다.
toonshader 는 Assets 어디에서도 쓰지 않아 제거하고, FarmingIsland 스크립트가 실제로 쓰는
cinemachine 은 남긴다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Assets/Suriyun/Scripts/MouseOrbitImproved.cs 와 기존
Assets/ResWork/Suriyun/Scripts/MouseOrbitImproved.cs 가 둘 다 전역 네임스페이스의
같은 클래스라 중복 정의로 프로젝트 전체가 컴파일되지 않았다(58cc4f663 소행).
둘 다 우리 게임 씬/맵에서는 쓰이지 않는 벤더 데모용 궤도 카메라라,
이번에 들어온 쪽만 지워 임포트 전 상태로 되돌린다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 「해상도만 저하된 느낌」 실측 진단:
캐릭터가 차지하는 픽셀이 84/62/47 px 로 도트 게임(16~48 px)보다 촘촘했다.
ortho 는 유지하고 픽셀 높이만 낮춰 42/31/23 px 로 맞춘다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PixelCameraManager.viewCamera/upscaledCanvas 는 [SerializeField] 가 아니라
프리팹에 저장되지 않아 인스턴스마다 항상 null → Initialize() 가 항상
FindAnyObjectByType 로 찾는다. Object.Destroy 는 프레임 끝 처리이므로
모드 전환(Teardown→Assemble 동일 프레임)에서 새 매니저가 아직 살아 있는
이전 리그의 뷰 카메라를 잡았고, 프레임 끝에 그것이 파괴되며
CanvasViewCamera.get_Aspect 에서 매 프레임 예외가 났다(PD 실측 200건).
FindAnyObjectByType 는 비활성 오브젝트를 제외하므로 파괴 전에 SetActive(false).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 실측: [카메라] 모드를 바꾸면 UpscaledCanvas.SetCanvasRenderTexture 에서
'Material has been destroyed' 예외가 매 프레임(콘솔 978건).
원인 = Object.Destroy 가 프레임 끝 처리라, 머티리얼 인스턴스를 지운 뒤에도
같은 프레임에 PixelCameraManager.LateUpdate 가 돌아 targetTexture==null 을 보고
RT 를 새로 만들고 이미 지운 머티리얼에 SetTexture 했다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
몹 처치마다 MobActor.Set_Die()(MobActor.cs:444)에서 NullReferenceException 이 났다.
원인 = 프리팹 저장 상태가 비활성인 IngameUIs 가지 아래의 MonsterSimpleInfo 를
스테이지 진입 때 SetActive(false) 해 버려서, 가지가 켜져도 그 노드만 꺼진 채 남아
Awake 가 영영 안 돌고 MonoBehaviourSingletonTemplate.Ins 가 null 로 남은 것.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Assets/WL/Combat/Stage/Barrier/ 신규 3파일 + Resources SO
- 워프백 = 813w3/813t2 와 같은 원본 Actor.Set_Warp · NavMesh 스냅 · 카메라 리드 스냅
- 보이기 3스타일: ⓐ Hovl Marker 3 Zone Loop 스케일 ⓑ 울타리·바위 프롭 링 ⓒ 불꽃 링(총량 상한)
- 캡처는 다음 커밋