From 0ff5ec088ab44a3c8a2e74154e3b4be3657918ef Mon Sep 17 00:00:00 2001 From: swrring Date: Sat, 12 Sep 2026 22:20:14 +0900 Subject: [PATCH] =?UTF-8?q?[WL-814r-hotfix]=20=EC=8B=9C=EB=B2=94=20?= =?UTF-8?q?=EC=A0=84=ED=88=AC=EC=9E=A5=20=EC=BA=90=EB=A6=AD=ED=84=B0?= =?UTF-8?q?=EA=B0=80=20=EC=8B=A4=EC=A0=9C=EB=A1=9C=20=EC=9B=80=EC=A7=81?= =?UTF-8?q?=EC=9D=B4=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=20+=20Event=5F?= =?UTF-8?q?Idle=20=EC=97=90=EB=9F=AC=20=EC=A0=9C=EA=B1=B0=20(#814)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- Assets/WL/Look/Arena/ArenaAnimEventSink.cs | 23 +++++++++++++++ .../WL/Look/Arena/ArenaAnimEventSink.cs.meta | 2 ++ .../WL/Look/Arena/Scenes/WL_ArenaProto.unity | 29 +++++++++++++++++-- 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 Assets/WL/Look/Arena/ArenaAnimEventSink.cs create mode 100644 Assets/WL/Look/Arena/ArenaAnimEventSink.cs.meta diff --git a/Assets/WL/Look/Arena/ArenaAnimEventSink.cs b/Assets/WL/Look/Arena/ArenaAnimEventSink.cs new file mode 100644 index 000000000..ddf83b7a3 --- /dev/null +++ b/Assets/WL/Look/Arena/ArenaAnimEventSink.cs @@ -0,0 +1,23 @@ +// ───────────────────────────────────────────────────────────────────────────── +// ArenaAnimEventSink.cs — 시범 전투장(WL_ArenaProto) 전용 애니메이션 이벤트 흡수기 +// +// ■ 왜 필요한가 (Lead 실측 · 2026-09-12 22:2x) +// 이 씬의 캐릭터는 전시용이라 게임 컴포넌트(`WizardActor`)를 전부 떼어 냈다(814r §1). +// 그런데 `Idle` 클립(FBX 내장)이 `Event_Idle` 을 쏘고, 받는 쪽이 사라져서 +// `'PC_LH_M05' AnimationEvent 'Event_Idle' on animation 'Idle' has no receiver!` 가 계속 뜬다(실측 33건). +// `Animator.fireEvents = false` 는 **런타임 전용 플래그라 에디트 모드에서는 소용이 없다** → +// 빈 수신자를 하나 붙여 에디트/플레이 양쪽에서 조용하게 만든다. +// +// ■ 원본 수신자와 같은 이름만 맞춘다(`Assets/Script/**` 의 `void Event_Idle`). 하는 일은 없다. +// ───────────────────────────────────────────────────────────────────────────── + +using UnityEngine; + +namespace WL.Look.Arena +{ + [DisallowMultipleComponent] + public sealed class ArenaAnimEventSink : MonoBehaviour + { + void Event_Idle() { } + } +} diff --git a/Assets/WL/Look/Arena/ArenaAnimEventSink.cs.meta b/Assets/WL/Look/Arena/ArenaAnimEventSink.cs.meta new file mode 100644 index 000000000..ae4c9e14c --- /dev/null +++ b/Assets/WL/Look/Arena/ArenaAnimEventSink.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4df98319d904e914bb202550383db57d \ No newline at end of file diff --git a/Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity b/Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity index 35d018093..28ef318d7 100644 --- a/Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity +++ b/Assets/WL/Look/Arena/Scenes/WL_ArenaProto.unity @@ -3986,6 +3986,12 @@ Transform: type: 3} m_PrefabInstance: {fileID: 654450016} m_PrefabAsset: {fileID: 0} +--- !u!1 &711662063 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7522112115323654996, guid: 13b0aeca987980646af87711964339c8, + type: 3} + m_PrefabInstance: {fileID: 918041734} + m_PrefabAsset: {fileID: 0} --- !u!1001 &715383191 PrefabInstance: m_ObjectHideFlags: 0 @@ -7274,7 +7280,11 @@ PrefabInstance: - {fileID: 8835979289890761207, guid: 13b0aeca987980646af87711964339c8, type: 3} m_RemovedGameObjects: [] m_AddedGameObjects: [] - m_AddedComponents: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 7522112115323654996, guid: 13b0aeca987980646af87711964339c8, + type: 3} + insertIndex: -1 + addedObject: {fileID: 918041737} m_SourcePrefab: {fileID: 100100000, guid: 13b0aeca987980646af87711964339c8, type: 3} --- !u!4 &918041735 stripped Transform: @@ -7282,6 +7292,18 @@ Transform: type: 3} m_PrefabInstance: {fileID: 918041734} m_PrefabAsset: {fileID: 0} +--- !u!114 &918041737 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 711662063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4df98319d904e914bb202550383db57d, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::WL.Look.Arena.ArenaAnimEventSink --- !u!1001 &929833716 PrefabInstance: m_ObjectHideFlags: 0 @@ -14537,11 +14559,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Assembly-CSharp::WL.Look.Arena.ArenaWalker body: {fileID: 918041735} - followCamera: {fileID: 1166334009} + followCamera: {fileID: 0} moveSpeed: 3.9 turnSpeed: 300 idleState: idle runState: run + autoWalk: 0 + autoWalkDir: {x: 1, y: 0, z: 0} + autoWalkGoal: 14 --- !u!4 &2042308456 Transform: m_ObjectHideFlags: 0