From 0762f3e2b88bd91998c3d7b5623b2bfdf5421d46 Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 20 Oct 2026 02:57:59 +0900 Subject: [PATCH] =?UTF-8?q?WL=20#947=20=EC=8A=A4=ED=82=AC=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=94=AC=20Play=20=EA=B2=80=EC=A6=9D?= =?UTF-8?q?=C2=B7=EC=88=98=EC=A0=95=20=E2=80=94=20=ED=95=98=EB=84=A4?= =?UTF-8?q?=EC=8A=A4=20=EB=8B=A8=EA=B3=84=EB=B3=84=20try(=EC=98=88?= =?UTF-8?q?=EC=99=B8=20=EC=9C=84=EC=B9=98=EB=A5=BC=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EC=97=90)=20=C2=B7=20DungeonInfo=20=EC=94=AC?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=20=C2=B7=20PC=C2=B7=EB=8D=94=EB=AF=B8=20?= =?UTF-8?q?=EB=B9=84=ED=99=9C=EC=84=B1=20=EC=A0=80=EC=9E=A5(Set=20?= =?UTF-8?q?=EC=A7=81=EC=A0=84=20=EC=BC=AC)=20=C2=B7=20InGameInfo=20?= =?UTF-8?q?=EC=98=88=EC=97=B4=20=EB=92=A4=20PC=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=C2=B7=20dic=5FMagicData=20=EC=B1=84=EC=9B=80(HUD=20=EC=97=86?= =?UTF-8?q?=EC=9D=B4=20Q/E)=20=C2=B7=20=EB=AC=B4=EA=B8=B0=20=EC=88=9C?= =?UTF-8?q?=ED=99=98=20=EC=A2=85=EB=A5=98=EB=B3=84=201=EA=B0=9C=20+=20O/P?= =?UTF-8?q?=20=ED=82=A4(PD=20=EC=A7=80=EC=8B=9C)=20=C2=B7=20=ED=8F=89?= =?UTF-8?q?=EC=A7=80=20=EA=B0=80=EC=9E=A5=EC=9E=90=EB=A6=AC=20=EC=9B=90?= =?UTF-8?q?=EC=A0=90=20=C2=B7=20=EC=9D=B4=EB=8F=99=20=EA=B2=80=EC=A6=9D=20?= =?UTF-8?q?=ED=9B=85(MoveFor)=20=C2=B7=20=EB=B9=8C=EB=8D=94=20Untitled=20?= =?UTF-8?q?=EC=97=90=EC=84=9C=20Single=20=C2=B7=20=EC=9B=90=EB=B3=B8=20?= =?UTF-8?q?=ED=9B=85=202(InGameInfo:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=94=AC=20DataCheckMgr=20=EC=A0=9C=EC=99=B8=20=C2=B7=20?= =?UTF-8?q?=EC=9D=B4=ED=8E=99=ED=8A=B8=20=EC=98=88=EC=97=B4=20Add=20?= =?UTF-8?q?=EC=A4=91=EB=B3=B5=20=EA=B0=80=EB=93=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Play 4회 실측: ready 23.7 s(이펙트 예열 프레임 18 s) · 자동 공격 6 s 10회 · 이동 5.7 m/1.5 s(Run→Idle) · 등급 6 → Q 방패 치기 · E 돌진 베기 발동 · O/P 순환 철창→대검→마법책→대검 · 콘솔 게임 오류 0 Co-Authored-By: Claude Fable 5.1 --- Assets/Script/Info/InGameInfo.cs | 5 +- .../Editor/WLSkillTestSceneBuilder.cs | 21 +- .../SkillTest/Resources/WL/WLSkillTest.json | 6 +- Assets/WL/SkillTest/WLSkillTest.unity | 1959 ++++++++++++----- Assets/WL/SkillTest/WLSkillTestHarness.cs | 201 +- 5 files changed, 1562 insertions(+), 630 deletions(-) diff --git a/Assets/Script/Info/InGameInfo.cs b/Assets/Script/Info/InGameInfo.cs index 884f424b3..1b72beac2 100644 --- a/Assets/Script/Info/InGameInfo.cs +++ b/Assets/Script/Info/InGameInfo.cs @@ -74,6 +74,9 @@ public partial class InGameInfo : MyCoroutine IEnumerator Start() { +#if UNITY_EDITOR + if (!WL.SkillTest.WLTestScene.Active) // WL #947 훅 — 로그인 없는 테스트 씬은 서버 주기 점검(뉴스 · 일일 초기화 · PlayFab 호출)을 돌리지 않는다 +#endif DataCheckMgr.Ins.Set(); Set_Init(); @@ -82,7 +85,7 @@ public partial class InGameInfo : MyCoroutine var lst = table_effectlist.Ins.Get_DataList(1); for (int i = 0; i < lst.Count; i++) { - dic_str_Effect.Add(lst[i].s_EffectPrefab, new List()); + if (!dic_str_Effect.ContainsKey(lst[i].s_EffectPrefab)) dic_str_Effect.Add(lst[i].s_EffectPrefab, new List()); // WL #947 훅 — 테이블을 씬 안에서 로드하는 테스트 씬은 이 루프 전에 예열 투사체 수명 종료(Show_HitEffect → Get_Effect)가 키를 먼저 넣어 Add 가 ArgumentException 으로 끊겼다 for (int j = 0; j < lst[i].n_PreLoadCount; j++) Load_Effect(lst[i].s_EffectPrefab, effect => { effect.transform.position = Vector3.one * 100000f; }); } diff --git a/Assets/WL/SkillTest/Editor/WLSkillTestSceneBuilder.cs b/Assets/WL/SkillTest/Editor/WLSkillTestSceneBuilder.cs index ab10929ec..6dd75ddb6 100644 --- a/Assets/WL/SkillTest/Editor/WLSkillTestSceneBuilder.cs +++ b/Assets/WL/SkillTest/Editor/WLSkillTestSceneBuilder.cs @@ -2,7 +2,7 @@ // WLSkillTestSceneBuilder.cs — 독립 스킬 테스트 씬(Assets/WL/SkillTest/WLSkillTest.unity)을 코드로 조립·저장 (PD #947 · 2026-10-20 재지시판) // // ■ 들어가는 것(= 원본 StatTest 하네스 구성 + WL 치비·더미·평지) — 로그인·HUD·섬 없음 -// Directional Light · Ground(Plane · URP Lit 재질 자산 · 하네스가 런타임 NavMesh 베이크) · Mgr(AddrResourceMgr·CoroutineMgr·TimeMgr) · EventSystem +// Directional Light · Ground(Plane · URP Lit 재질 자산 · 하네스가 런타임 NavMesh 베이크) · Mgr(AddrResourceMgr·CoroutineMgr·TimeMgr) · EventSystem · DungeonInfo(InGame.unity 씬 객체 · 웨이브 스탯 표) // · ResWork/UIPrefabs/Title/{Tables, SoundInfo, SortOrder_5(OptionInfo·Popup), ActorInfo}.prefab // · ResWork/Prefabs/Ingame/{InGameInfo(이펙트·투사체 풀), ProjectileInfo, Main Camera(RealCamera)}.prefab // · PCPos/치비 PC 프리팹(WLCharacterSwapSettings.pcPrefabName · 없으면 Ai01) · MobPos/더미 몹 프리팹(Res_Addr/Mobs/WL/RPG_Bat) @@ -95,7 +95,10 @@ namespace WL.SkillTest.Editor if (!AssetDatabase.IsValidFolder(Folder)) AssetDatabase.CreateFolder("Assets/WL", "SkillTest"); var cfg = WLSkillTestHarness.Cfg; - var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive); + // 현재 씬이 저장 안 된 Untitled(CloseTestScene() 직후)면 Additive 생성이 거절된다(InvalidOperationException · #947 실측) → 그 자리에 Single 로 만든다 + bool untitled = string.IsNullOrEmpty(prevActive.path); + if (untitled && prevActive.isDirty) return "저장 안 된 Untitled 씬이 열려 있음 — Title 을 연 뒤 Build()"; + var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, untitled ? NewSceneMode.Single : NewSceneMode.Additive); SceneManager.SetActiveScene(scene); var lightGo = new GameObject("Directional Light"); @@ -117,6 +120,8 @@ namespace WL.SkillTest.Editor var mgr = new GameObject("Mgr"); mgr.AddComponent(); mgr.AddComponent(); mgr.AddComponent(); var es = new GameObject("EventSystem"); es.AddComponent(); es.AddComponent(); + // InGame.unity 의 씬 객체(직렬화 참조 0 · 몬스터 웨이브 스탯 표) — 원본 ActorStatInfo.Reset 이 DungeonInfo.Ins.dic_WaveStat 를 읽어 없으면 PC.Set 이 NRE(#947 1차 Play 실측) + var dg = new GameObject("DungeonInfo"); dg.AddComponent(); foreach (var n in TitlePrefabs) { @@ -136,12 +141,13 @@ namespace WL.SkillTest.Editor var pcPos = new GameObject("PCPos"); pcPos.transform.position = spawn; var pcPrefab = AssetDatabase.LoadAssetAtPath(PcPrefabPath()); Actor pcActor = null; - if (pcPrefab != null) { var pc = PrefabUtility.InstantiatePrefab(pcPrefab, scene) as GameObject; pc.transform.SetParent(pcPos.transform, false); pcActor = pc.GetComponent(); } + // 🔴 PC·더미는 꺼 둔 채 저장 — 하네스가 Set 직전에 켠다. 켜진 채 두면 Set(Init_CC) 전에 MobActor.Update→IsCC 가 매 프레임 KeyNotFound(Freeze) 예외(#947 1차 Play 1000건) + if (pcPrefab != null) { var pc = PrefabUtility.InstantiatePrefab(pcPrefab, scene) as GameObject; pc.transform.SetParent(pcPos.transform, false); pcActor = pc.GetComponent(); pc.SetActive(false); } else sb.Append("🔴 PC 프리팹 없음\n"); var mobPos = new GameObject("MobPos"); mobPos.transform.position = spawn + new Vector3(2f, 0f, -1.5f); var mobPrefab = AssetDatabase.LoadAssetAtPath(DummyPrefab); MobActor mob = null; - if (mobPrefab != null) { var m = PrefabUtility.InstantiatePrefab(mobPrefab, scene) as GameObject; m.transform.SetParent(mobPos.transform, false); mob = m.GetComponent(); } + if (mobPrefab != null) { var m = PrefabUtility.InstantiatePrefab(mobPrefab, scene) as GameObject; m.transform.SetParent(mobPos.transform, false); mob = m.GetComponent(); m.SetActive(false); } else sb.Append("🔴 더미 프리팹 없음 " + DummyPrefab + "\n"); if (pcActor == null) sb.Append("🔴 PC 프리팹에 Actor 없음\n"); if (mob == null) sb.Append("🔴 더미 프리팹에 MobActor 없음\n"); @@ -164,8 +170,11 @@ namespace WL.SkillTest.Editor bool saved = EditorSceneManager.SaveScene(scene, ScenePath); sb.Append(saved ? "저장 " : "🔴 저장 실패 ").Append(ScenePath).Append(" · 루트 ").Append(scene.rootCount).Append(" · PC ").Append(PcPrefabPath()).Append('\n'); - if (prevActive.IsValid() && prevActive.isLoaded) SceneManager.SetActiveScene(prevActive); - EditorSceneManager.CloseScene(scene, true); + if (!untitled) + { // Title 등에서 불렀으면 원래 씬으로 돌아가고 테스트 씬은 닫는다(Untitled 에서 불렀으면 저장된 테스트 씬이 그대로 열려 있다) + if (prevActive.IsValid() && prevActive.isLoaded) SceneManager.SetActiveScene(prevActive); + EditorSceneManager.CloseScene(scene, true); + } AssetDatabase.SaveAssets(); return sb.ToString(); } diff --git a/Assets/WL/SkillTest/Resources/WL/WLSkillTest.json b/Assets/WL/SkillTest/Resources/WL/WLSkillTest.json index 614794e4e..f78c81c6f 100644 --- a/Assets/WL/SkillTest/Resources/WL/WLSkillTest.json +++ b/Assets/WL/SkillTest/Resources/WL/WLSkillTest.json @@ -9,12 +9,12 @@ "dummyStill": 1, "moveKeys": 1, "attackKey": "Space", - "weaponPrevKey": "LeftBracket", - "weaponNextKey": "RightBracket", + "weaponPrevKey": "O", + "weaponNextKey": "P", "dummyResetKey": "R", "slowKey": "T", "slowScale": 0.2, - "pauseKey": "P", + "pauseKey": "Backslash", "label": 1, "labelFontScale": 0.018, "groundSize": 100, diff --git a/Assets/WL/SkillTest/WLSkillTest.unity b/Assets/WL/SkillTest/WLSkillTest.unity index 5858b5e9a..0ca29fd49 100644 --- a/Assets/WL/SkillTest/WLSkillTest.unity +++ b/Assets/WL/SkillTest/WLSkillTest.unity @@ -119,7 +119,166 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!1 &19310268 +--- !u!1001 &64066824 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 415627214} + m_Modifications: + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7522112115323654996, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_Name + value: LH_M05 + objectReference: {fileID: 0} + - target: {fileID: 7522112115323654996, guid: 13b0aeca987980646af87711964339c8, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 13b0aeca987980646af87711964339c8, type: 3} +--- !u!114 &64066825 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8641894914256534733, guid: 13b0aeca987980646af87711964339c8, + type: 3} + m_PrefabInstance: {fileID: 64066824} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8f79809f279f7c148afdc588c35cd921, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &64066826 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5000001850263733008, guid: 13b0aeca987980646af87711964339c8, + type: 3} + m_PrefabInstance: {fileID: 64066824} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &171466219 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalPosition.z + value: -10 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5448332676958061915, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + type: 3} + propertyPath: m_Name + value: Main Camera + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, type: 3} +--- !u!1 &172906491 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -127,53 +286,515 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 19310271} - - component: {fileID: 19310270} - - component: {fileID: 19310269} + - component: {fileID: 172906492} + - component: {fileID: 172906495} + - component: {fileID: 172906494} + - component: {fileID: 172906493} m_Layer: 0 - m_Name: Global Volume + m_Name: WLSkillTestCanvas m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &19310269 +--- !u!224 &172906492 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172906491} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1069562646} + - {fileID: 237307613} + - {fileID: 306498003} + - {fileID: 1581084889} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!114 &172906493 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 19310268} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.Volume - m_IsGlobal: 1 - priority: 0 - blendDistance: 0 - weight: 1 - sharedProfile: {fileID: 11400000, guid: 96e4f5994a1f2d948a293a2d5f2bd1b3, type: 2} ---- !u!114 &19310270 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 19310268} + m_GameObject: {fileID: 172906491} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 38f50b30e61fb0341aed3733ef1b8fdd, type: 3} + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::GlobalVolumeMgr - m_Volume: {fileID: 0} ---- !u!4 &19310271 + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &172906494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172906491} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &172906495 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172906491} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 50 + m_TargetDisplay: 0 +--- !u!1 &237307612 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 237307613} + - component: {fileID: 237307614} + - component: {fileID: 237307615} + m_Layer: 0 + m_Name: mobstat + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &237307613 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237307612} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 172906492} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -10, y: 10} + m_SizeDelta: {x: 360, y: 220} + m_Pivot: {x: 1, y: 0} +--- !u!222 &237307614 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237307612} + m_CullTransparentMesh: 1 +--- !u!114 &237307615 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 237307612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1001 &285980628 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 5592969400081043368, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_Name + value: SoundInfo + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: e47583f3231d50740a2a7fbf18e6c0c6, type: 3} +--- !u!1 &306498002 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 306498003} + - component: {fileID: 306498004} + - component: {fileID: 306498005} + m_Layer: 0 + m_Name: dmg + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &306498003 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306498002} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 172906492} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -10, y: -10} + m_SizeDelta: {x: 420, y: 300} + m_Pivot: {x: 1, y: 1} +--- !u!222 &306498004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306498002} + m_CullTransparentMesh: 1 +--- !u!114 &306498005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 306498002} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &415627213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 415627214} + m_Layer: 0 + m_Name: PCPos + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415627214 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 19310268} + m_GameObject: {fileID: 415627213} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 64066826} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &644054867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 644054869} + - component: {fileID: 644054868} + m_Layer: 0 + m_Name: DungeonInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &644054868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644054867} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ed190b399bd4be4ebc361c911eb9d95, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::DungeonInfo + m_TotalTime: 0 + WaveMakeGapTime: 0 +--- !u!4 &644054869 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 644054867} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -182,7 +803,7 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &498260968 +--- !u!1 &726880501 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -190,58 +811,48 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 498260971} - - component: {fileID: 498260970} - - component: {fileID: 498260969} + - component: {fileID: 726880503} + - component: {fileID: 726880502} m_Layer: 0 - m_Name: EventSystem + m_Name: WLSkillTestHarness m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &498260969 +--- !u!114 &726880502 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498260968} + m_GameObject: {fileID: 726880501} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Script: {fileID: 11500000, guid: fad1ef88e6d8b98409ef91ae1d984816, type: 3} m_Name: - m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.StandaloneInputModule - m_SendPointerHoverToParent: 1 - m_HorizontalAxis: Horizontal - m_VerticalAxis: Vertical - m_SubmitButton: Submit - m_CancelButton: Cancel - m_InputActionsPerSecond: 10 - m_RepeatDelay: 0.5 - m_ForceModuleActive: 0 ---- !u!114 &498260970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498260968} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} - m_Name: - m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem - m_FirstSelected: {fileID: 0} - m_sendNavigationEvents: 1 - m_DragThreshold: 10 ---- !u!4 &498260971 + m_EditorClassIdentifier: Assembly-CSharp::WL.SkillTest.WLSkillTestHarness + go_tables: {fileID: 0} + actors: + - {fileID: 64066825} + - {fileID: 1970728675} + labels: + - {fileID: 1069562648} + - {fileID: 237307615} + - {fileID: 306498005} + - {fileID: 1581084887} + inputs: [] + m_TMP_Dropdown: {fileID: 0} + m_TMP_Dropdown_Skill: {fileID: 0} + pcActor: {fileID: 64066825} + dummyActor: {fileID: 1970728675} +--- !u!4 &726880503 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 498260968} + m_GameObject: {fileID: 726880501} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -250,7 +861,75 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &597521493 +--- !u!1001 &813863078 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3592818014784579415, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5648830385143125634, guid: dbd6b7f67ff82574e95622f5e861d0c6, + type: 3} + propertyPath: m_Name + value: ProjectileInfo + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: dbd6b7f67ff82574e95622f5e861d0c6, type: 3} +--- !u!1001 &900208231 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -368,7 +1047,7 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: cc1441de98672f94e8db36f727d41651, type: 3} ---- !u!1 &697666336 +--- !u!1 &1047532857 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -376,43 +1055,31 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 697666338} - - component: {fileID: 697666337} + - component: {fileID: 1047532858} m_Layer: 0 - m_Name: IngameTouchInfo + m_Name: MobPos m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &697666337 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 697666336} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 68bebb0d1512fbc4180d3cae3ab568f1, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::InGameTouchInfo ---- !u!4 &697666338 +--- !u!4 &1047532858 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 697666336} + m_GameObject: {fileID: 1047532857} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 2, y: 0, z: -1.5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1970728676} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &881267190 +--- !u!1 &1069562645 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -420,372 +1087,136 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 881267192} - - component: {fileID: 881267191} + - component: {fileID: 1069562646} + - component: {fileID: 1069562647} + - component: {fileID: 1069562648} m_Layer: 0 - m_Name: DungeonInfo + m_Name: pcstat m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &881267191 +--- !u!224 &1069562646 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069562645} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 172906492} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 10, y: 10} + m_SizeDelta: {x: 360, y: 220} + m_Pivot: {x: 0, y: 0} +--- !u!222 &1069562647 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069562645} + m_CullTransparentMesh: 1 +--- !u!114 &1069562648 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 881267190} + m_GameObject: {fileID: 1069562645} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7ed190b399bd4be4ebc361c911eb9d95, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::DungeonInfo - m_TotalTime: 0 - WaveMakeGapTime: 0 ---- !u!4 &881267192 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 881267190} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &886385477 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 886385479} - - component: {fileID: 886385478} - m_Layer: 0 - m_Name: WLSkillTestBoot - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &886385478 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886385477} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d2262201ce81fd5449555b2f0fa8dfed, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::WL.SkillTest.WLSkillTestBoot - inGameInfoPrefab: {fileID: 4525569738805394790, guid: e3c4be67fc01ba74e89bad5eeb0de437, - type: 3} - pcInfoPrefab: {fileID: 3011261262900193068, guid: aa5c8ea19f5e09a4da7d903094635d40, - type: 3} - projectileInfoPrefab: {fileID: 5648830385143125634, guid: dbd6b7f67ff82574e95622f5e861d0c6, - type: 3} ---- !u!4 &886385479 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886385477} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1278164270 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 285758041279125022, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_Name - value: UIAtlasMgr - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8413869023028529553, guid: 3543732faf47be94b9d43adce4338783, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3543732faf47be94b9d43adce4338783, type: 3} ---- !u!1 &1593120247 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1593120249} - - component: {fileID: 1593120248} - m_Layer: 0 - m_Name: DropItemInfo - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1593120248 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1593120247} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2a9c4fdffa888b84897a97d0bef9fd6d, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::DropItemInfo ---- !u!4 &1593120249 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1593120247} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1605975905 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 1602866066306103301, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_Name - value: ActorInfo - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 35cc51d1c9df5c84cb39e0005f798da6, type: 3} ---- !u!1 &1658048616 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1658048618} - - component: {fileID: 1658048617} - m_Layer: 0 - m_Name: Directional Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!108 &1658048617 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1658048616} - m_Enabled: 1 - serializedVersion: 12 - m_Type: 1 + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1.1 - m_Range: 10 - m_SpotAngle: 30 - m_InnerSpotAngle: 21.80208 - m_CookieSize2D: {x: 0.5, y: 0.5} - m_Shadows: - m_Type: 2 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_UseViewFrustumForShadowCasterCull: 1 - m_ForceVisible: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 - m_LightUnit: 1 - m_LuxAtDistance: 1 - m_EnableSpotReflector: 1 ---- !u!4 &1658048618 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1658048616} - serializedVersion: 2 - m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1738185520 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &1472328321 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -793,10 +1224,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1738185524} - - component: {fileID: 1738185523} - - component: {fileID: 1738185522} - - component: {fileID: 1738185521} + - component: {fileID: 1472328325} + - component: {fileID: 1472328324} + - component: {fileID: 1472328323} + - component: {fileID: 1472328322} m_Layer: 0 m_Name: Ground m_TagString: Untagged @@ -804,13 +1235,13 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 4 m_IsActive: 1 ---- !u!23 &1738185521 +--- !u!23 &1472328322 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1738185520} + m_GameObject: {fileID: 1472328321} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -853,13 +1284,13 @@ MeshRenderer: m_SortingOrder: 0 m_MaskInteraction: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!64 &1738185522 +--- !u!64 &1472328323 MeshCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1738185520} + m_GameObject: {fileID: 1472328321} m_Material: {fileID: 0} m_IncludeLayers: serializedVersion: 2 @@ -875,21 +1306,21 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!33 &1738185523 +--- !u!33 &1472328324 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1738185520} + m_GameObject: {fileID: 1472328321} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1738185524 +--- !u!4 &1472328325 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1738185520} + m_GameObject: {fileID: 1472328321} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -898,75 +1329,7 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &1786167120 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 5592969400081043368, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_Name - value: SoundInfo - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8705745286184766240, guid: e47583f3231d50740a2a7fbf18e6c0c6, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: e47583f3231d50740a2a7fbf18e6c0c6, type: 3} ---- !u!1 &1797140228 +--- !u!1 &1581084886 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -974,60 +1337,195 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1797140232} - - component: {fileID: 1797140231} - - component: {fileID: 1797140230} - - component: {fileID: 1797140229} + - component: {fileID: 1581084889} + - component: {fileID: 1581084888} + - component: {fileID: 1581084887} m_Layer: 0 - m_Name: Mgr + m_Name: classinfo m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!114 &1797140229 +--- !u!114 &1581084887 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1797140228} + m_GameObject: {fileID: 1581084886} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: cc1d3bc18379c0a4196064b2ab851346, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::TimeMgr ---- !u!114 &1797140230 + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 1024 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1581084888 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581084886} + m_CullTransparentMesh: 1 +--- !u!224 &1581084889 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581084886} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 172906492} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 10} + m_SizeDelta: {x: 600, y: 40} + m_Pivot: {x: 0.5, y: 0} +--- !u!1 &1584010731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1584010734} + - component: {fileID: 1584010733} + - component: {fileID: 1584010732} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1584010732 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1797140228} + m_GameObject: {fileID: 1584010731} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 205e9f58da95dca43bcd6f29f4cc3b41, type: 3} + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::CoroutineMgr ---- !u!114 &1797140231 + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.StandaloneInputModule + m_SendPointerHoverToParent: 1 + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1584010733 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1797140228} + m_GameObject: {fileID: 1584010731} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 01d734a0ae085284eb82b59533011c90, type: 3} + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} m_Name: - m_EditorClassIdentifier: Assembly-CSharp::AddrResourceMgr ---- !u!4 &1797140232 + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1584010734 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1797140228} + m_GameObject: {fileID: 1584010731} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -1036,7 +1534,77 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &2082658120 +--- !u!1 &1619860162 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1619860166} + - component: {fileID: 1619860165} + - component: {fileID: 1619860164} + - component: {fileID: 1619860163} + m_Layer: 0 + m_Name: Mgr + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1619860163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619860162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cc1d3bc18379c0a4196064b2ab851346, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::TimeMgr +--- !u!114 &1619860164 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619860162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 205e9f58da95dca43bcd6f29f4cc3b41, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::CoroutineMgr +--- !u!114 &1619860165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619860162} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01d734a0ae085284eb82b59533011c90, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::AddrResourceMgr +--- !u!4 &1619860166 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1619860162} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1761509494 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -1104,7 +1672,104 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2d20f62727d330b45b53a44adbb375e6, type: 3} ---- !u!1001 &2124090511 +--- !u!1 &1793427149 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1793427151} + - component: {fileID: 1793427150} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1793427150 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1793427149} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1.1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 0.5, y: 0.5} + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1793427151 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1793427149} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1925282218 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 @@ -1112,82 +1777,242 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalPosition.y - value: 1 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalPosition.z - value: -10 + value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 142741943360815210, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394788, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5448332676958061915, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, + - target: {fileID: 4525569738805394790, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} propertyPath: m_Name - value: Main Camera + value: InGameInfo objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 1fb5fd58cbcc4714eaf59008cbda15a1, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: e3c4be67fc01ba74e89bad5eeb0de437, type: 3} +--- !u!1001 &1970728674 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1047532858} + m_Modifications: + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2685817565233017284, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_Name + value: RPG_Bat + objectReference: {fileID: 0} + - target: {fileID: 2685817565233017284, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4027372be0cf2324393c3db0fe3f8959, type: 3} +--- !u!114 &1970728675 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7302906729729703757, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + m_PrefabInstance: {fileID: 1970728674} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f985004e8ad29cf428f80c433e48ab9c, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1970728676 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 419370586834477461, guid: 4027372be0cf2324393c3db0fe3f8959, + type: 3} + m_PrefabInstance: {fileID: 1970728674} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &2100808495 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1602866066306103301, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_Name + value: ActorInfo + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4462996344097564095, guid: 35cc51d1c9df5c84cb39e0005f798da6, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 35cc51d1c9df5c84cb39e0005f798da6, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 1658048618} - - {fileID: 1738185524} - - {fileID: 1797140232} - - {fileID: 498260971} - - {fileID: 2082658120} - - {fileID: 1786167120} - - {fileID: 1278164270} - - {fileID: 597521493} - - {fileID: 1605975905} - - {fileID: 2124090511} - - {fileID: 697666338} - - {fileID: 881267192} - - {fileID: 1593120249} - - {fileID: 19310271} - - {fileID: 886385479} + - {fileID: 1793427151} + - {fileID: 1472328325} + - {fileID: 1619860166} + - {fileID: 1584010734} + - {fileID: 644054869} + - {fileID: 1761509494} + - {fileID: 285980628} + - {fileID: 900208231} + - {fileID: 2100808495} + - {fileID: 1925282218} + - {fileID: 813863078} + - {fileID: 171466219} + - {fileID: 415627214} + - {fileID: 1047532858} + - {fileID: 172906492} + - {fileID: 726880503} diff --git a/Assets/WL/SkillTest/WLSkillTestHarness.cs b/Assets/WL/SkillTest/WLSkillTestHarness.cs index 660747b5a..0d366c60a 100644 --- a/Assets/WL/SkillTest/WLSkillTestHarness.cs +++ b/Assets/WL/SkillTest/WLSkillTestHarness.cs @@ -10,7 +10,8 @@ // ■ 원본 코드와의 접점 = StatTest 전용 분기 13곳을 `WLTestScene.Active`(StatTest 또는 WLSkillTest)로 넓힌 것뿐(HUD·포털·서버 일시정지·대상 목록 분기 · 전부 #if UNITY_EDITOR 안). // 이동·넉백·소환 AI 분기(Actor 1665·1710·2198 · MobActor 75 · SummonActor 60 · WizardActor 53·61)는 StatTest 전용으로 남겨 **실제 게임 동작**을 유지한다. // ■ 이 클래스가 MainToStatTest 를 상속하는 이유 = 원본 분기가 `MainToStatTest.Ins.actors[1]`(대상)·`Set_Dmglabel`(피해 글자)를 부른다 → 같은 자리를 채워 준다. -// ■ 키: WASD/방향키 이동 · Space 기본 공격 1타 · Q 주력 · E 각성 · 숫자 등급(기존 훅) · [ ] 무기 바꾸기 · R 더미 제자리 · T 슬로 모션 · P 일시정지 +// ■ 키: WASD/방향키 이동(섬 조이스틱과 같은 호출 · Set_AutoBraking(false) → JoystickStatus 1 → Run_byJoystick) · Space 기본 공격 1타 · Q 주력 · E 각성 · 숫자 등급(기존 훅) +// · O 무기 이전(왼쪽 순환) · P 무기 다음(오른쪽 순환) — PD 2026-10-20 #947 지시 · 종류(GroupNo)마다 1개 · R 더미 제자리 · T 슬로 모션 · Pause = 설정값(기본 Backslash) // ■ 값 = Resources/WL/WLSkillTest.json (C45) · 상태 파일 = Library/WLSkillTest_status.txt(외부 스크립트는 Play 중 eval 대신 이 파일) · 🔴 Debug.LogError 금지(원본 ErrorLogHook 팝업) // ───────────────────────────────────────────────────────────────────────────── using System.Collections; @@ -45,12 +46,12 @@ namespace WL.SkillTest public int dummyStill = 1; // 1 = 더미 제자리 public int moveKeys = 1; public string attackKey = "Space"; - public string weaponPrevKey = "LeftBracket"; - public string weaponNextKey = "RightBracket"; + public string weaponPrevKey = "O"; // PD #947: O = 무기 왼쪽 순환 + public string weaponNextKey = "P"; // PD #947: P = 무기 오른쪽 순환 public string dummyResetKey = "R"; public string slowKey = "T"; public float slowScale = 0.2f; - public string pauseKey = "P"; + public string pauseKey = "Backslash"; // P 를 무기에 내주고 일시정지는 \ 로 public int label = 1; public float labelFontScale = 0.018f; public float groundSize = 100f; @@ -72,11 +73,13 @@ namespace WL.SkillTest public static readonly List Laps = new List(); public static readonly List Hangs = new List(); public static float T0; + public static string MoveLog = ""; static WLSkillTestJson s_cfg; - float _lastRt; + static System.Reflection.FieldInfo s_fEffects, s_fMagic, s_fMagicArr; + float _lastRt, _simH, _simV; bool _moving, _slow; - KeyCode _kAttack = KeyCode.Space, _kPrev = KeyCode.LeftBracket, _kNext = KeyCode.RightBracket, _kReset = KeyCode.R, _kSlow = KeyCode.T, _kPause = KeyCode.P; + KeyCode _kAttack = KeyCode.Space, _kPrev = KeyCode.O, _kNext = KeyCode.P, _kReset = KeyCode.R, _kSlow = KeyCode.T, _kPause = KeyCode.Backslash; string _msg = ""; GUIStyle _style; @@ -106,60 +109,139 @@ namespace WL.SkillTest T0 = Time.realtimeSinceStartup; Laps.Clear(); Hangs.Clear(); Ready = false; Dummy = null; s_cfg = null; LastLog = ""; var cfg = Cfg; - _kAttack = Key(cfg.attackKey, KeyCode.Space); _kPrev = Key(cfg.weaponPrevKey, KeyCode.LeftBracket); _kNext = Key(cfg.weaponNextKey, KeyCode.RightBracket); - _kReset = Key(cfg.dummyResetKey, KeyCode.R); _kSlow = Key(cfg.slowKey, KeyCode.T); _kPause = Key(cfg.pauseKey, KeyCode.P); + _kAttack = Key(cfg.attackKey, KeyCode.Space); _kPrev = Key(cfg.weaponPrevKey, KeyCode.O); _kNext = Key(cfg.weaponNextKey, KeyCode.P); + _kReset = Key(cfg.dummyResetKey, KeyCode.R); _kSlow = Key(cfg.slowKey, KeyCode.T); _kPause = Key(cfg.pauseKey, KeyCode.Backslash); + MoveLog = ""; _simH = _simV = 0f; if (actors == null || actors.Length < 2) actors = new Actor[] { pcActor, dummyActor }; Lap("awake"); } + // 단계마다 try — 예외는 상태 파일(stage=<단계>-fail · 예외 종류 · 메시지 · 호출 위치 4줄)에 남긴다. 코루틴이 조용히 죽으면 콘솔 스팸에 묻혀 찾기 어려웠다(#947 1차 Play · PC.Set NRE 가 Freeze 1000건 아래) IEnumerator Start() { var cfg = Cfg; - BakeGround(); ApplySky(cfg); + if (!Try("navmesh", () => { BakeGround(); ApplySky(cfg); })) yield break; Lap("navmesh"); while (TableChecker.Ins == null || !TableChecker.Ins.CheckAllLoad()) yield return null; Lap("tables"); - if (pcActor == null || dummyActor == null) { Stage = "refs-missing"; LastLog = "pcActor/dummyActor 참조 없음 — Build Scene 다시"; WriteStatus(); yield break; } + // InGameInfo.Start 의 이펙트 예열 루프(테이블 0.1 s 폴링 뒤 1프레임)가 끝난 다음에 PC 를 만든다 — 먼저 만들면 PC 피격 이펙트 키가 먼저 등록돼 그 루프의 Add 가 ArgumentException 으로 끊긴다(#947 2차 Play 실측) + for (float t = 0f; t < 3f && !EffectsPreloaded(); t += Time.unscaledDeltaTime) yield return null; + Lap("ingameinfo"); - // 오프라인 서버 데이터(신규 유저 꼴 · 테이블 로딩 뒤에만 생성 가능) + 자동 전투 - var sdata = new ServerData(); - try { if (cfg.autoBattle != 0) sdata.Add_Common(eCommon.Auto, 1); } catch (System.Exception ex) { LastLog = "Auto 설정 실패 " + ex.Message; } + if (pcActor == null || dummyActor == null) { Fail("refs-missing", "pcActor/dummyActor 참조 없음 — Build Scene 다시"); yield break; } // PC — 직업 = 낀 WL 무기(없으면 baseClassId). 원본 Set 안에서 WL 무기 적용기·스타터 킷이 돈다(섬과 같은 경로) - int cls = ResolveClass(cfg); - pcActor.transform.position = NavPos(V3(cfg.spawnPos)); - pcActor.Set(false, null, sdata, cls, true); - ActorInfo.Ins.Add_Actor(pcActor, eRole.PC, 0, pcActor.name); + int cls = 0; + if (!Try("pc", () => + { + // 오프라인 서버 데이터(신규 유저 꼴 · 테이블 로딩 뒤에만 생성 가능) + 자동 전투 + var sdata = new ServerData(); + try { if (cfg.autoBattle != 0) sdata.Add_Common(eCommon.Auto, 1); } catch (System.Exception ex) { LastLog = "Auto 설정 실패 " + ex.Message; } + cls = ResolveClass(cfg); + pcActor.transform.position = NavPos(V3(cfg.spawnPos)); + pcActor.gameObject.SetActive(true); // 빌더가 꺼 둔 것을 Set 직전에 켠다(원본 Set 도 켜지만 그 전에 콜라이더 bounds 를 읽는다) + pcActor.Set(false, null, sdata, cls, true); + FillMagicSlots(pcActor, sdata); + ActorInfo.Ins.Add_Actor(pcActor, eRole.PC, 0, pcActor.name); + })) yield break; Lap("pc " + cls); // 더미 — 몬스터 표 행으로 능력치 · 무적(WLTrailTest 체력 되채움) · 제자리 - var ms = WLIslandMobSettings.Instance; - int mobId = cfg.dummyMobId > 0 ? cfg.dummyMobId : (ms != null ? ms.hitTestDummyMobId : 101); - var data = table_monsterlist.Ins.Get_Data_orNull(mobId); - if (data == null) { Stage = "mob-row-none"; LastLog = "몬스터 표 없음 " + mobId; WriteStatus(); yield break; } - ActorInfo.Ins.Add_Actor(dummyActor, eRole.Mob, 1, dummyActor.name); - dummyActor.Set(true, null, null, 1, false); - dummyActor.Set(data, DummyPos(cfg, ms), null, 0); - if (cfg.dummyStill != 0) dummyActor.Stop(true); - WLTrailTest.Adopt(dummyActor); Dummy = dummyActor; - if (dummyActor.GetComponent() == null) dummyActor.gameObject.AddComponent().Begin(dummyActor); + int mobId = 0; + if (!Try("dummy", () => + { + var ms = WLIslandMobSettings.Instance; + mobId = cfg.dummyMobId > 0 ? cfg.dummyMobId : (ms != null ? ms.hitTestDummyMobId : 101); + var data = table_monsterlist.Ins.Get_Data_orNull(mobId); + if (data == null) throw new System.Exception("몬스터 표 없음 " + mobId); + dummyActor.gameObject.SetActive(true); // 빌더가 꺼 둔 것(Set 전 Update 의 IsCC 예외 방지) — Set 이 자식 SkinnedMeshRenderer bounds 를 읽으므로 먼저 켠다 + ActorInfo.Ins.Add_Actor(dummyActor, eRole.Mob, 1, dummyActor.name); + dummyActor.Set(true, null, null, 1, false); + dummyActor.Set(data, DummyPos(cfg, ms), null, 0); + if (cfg.dummyStill != 0) dummyActor.Stop(true); + WLTrailTest.Adopt(dummyActor); Dummy = dummyActor; + if (dummyActor.GetComponent() == null) dummyActor.gameObject.AddComponent().Begin(dummyActor); + })) yield break; Lap("dummy " + mobId); // 카메라 — 섬 구도 리그 + 원본 RealCamera 대상 - var icfg = WLIslandSettings.Instance; - if (icfg != null && cfg.cameraRig != 0 && Object.FindFirstObjectByType() == null) WLDungeonCameraRig.Create(icfg, gameObject.scene); - var rc = MyValue.m_RealCamera; - if (rc != null) rc.Set_Target(pcActor.transform, icfg != null ? WLDungeonCameraRig.SolvedYaw(icfg) : 0f); + if (!Try("camera", () => + { + var icfg = WLIslandSettings.Instance; + if (icfg != null && cfg.cameraRig != 0 && Object.FindFirstObjectByType() == null) WLDungeonCameraRig.Create(icfg, gameObject.scene); + var rc = MyValue.m_RealCamera; + if (rc != null) rc.Set_Target(pcActor.transform, icfg != null ? WLDungeonCameraRig.SolvedYaw(icfg) : 0f); + })) yield break; yield return null; - pcActor.Stop(false); - pcActor.Change_Target(false, dummyActor); + if (!Try("ready", () => { pcActor.Stop(false); pcActor.Change_Target(false, dummyActor); })) yield break; Ready = true; Lap("ready"); } + bool Try(string stage, System.Action step) + { + try { step(); return true; } + catch (System.Exception ex) { Fail(stage + "-fail", ex.GetType().Name + ": " + ex.Message + " @ " + Where(ex)); return false; } + } + + /// 예외 호출 위치 4줄 — 인자 목록·IL 오프셋·절대 경로를 지워 「at 클래스.메서드 파일.cs:줄」 만 남긴다. + static string Where(System.Exception ex) + { + var lines = (ex.StackTrace ?? "").Split('\n'); var sb = new System.Text.StringBuilder(); + for (int i = 0; i < lines.Length && i < 4; i++) + sb.Append(System.Text.RegularExpressions.Regex.Replace(lines[i].Trim(), @"\s*\(.*?\)\s*\[0x[0-9a-fA-F]+\]\s*in\s*.*[\\/]", " ")).Append(" | "); + return sb.ToString(); + } + + void Fail(string stage, string msg) { Stage = stage; LastLog = msg; WriteStatus(); Debug.LogWarning("[WLSkillTest] " + stage + " — " + msg); } // LogError 금지(원본 ErrorLogHook 팝업) + + /// InGameInfo.Start 의 예열 루프가 돌았는가 — 비공개 dic_str_Effect 의 키 수 ≥ 이펙트 표(목록 1) 행 수. + static bool EffectsPreloaded() + { + var ig = InGameInfo.Ins; if (ig == null) return false; + if (s_fEffects == null) s_fEffects = typeof(InGameInfo).GetField("dic_str_Effect", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public); + var d = s_fEffects != null ? s_fEffects.GetValue(ig) as System.Collections.IDictionary : null; + if (d == null) return true; // 필드가 바뀌었으면 기다리지 않는다 + var lst = table_effectlist.Ins != null ? table_effectlist.Ins.Get_DataList(1) : null; + return lst == null || d.Count >= lst.Count; + } + + /// 원본 PCActor.Set 은 HUD 스킬 카드(NewGameUI)가 있을 때만 dic_MagicData 를 채운다 → HUD 없는 이 씬에선 Use_Skill 의 dic_MagicData[index] 가 KeyNotFound(#947 2차 Play · Q/E 발동 실패). 같은 꼴로 스킬 칸 수만큼 채운다. + static void FillMagicSlots(Actor pc, ServerData sdata) + { + var bf = System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public; + if (s_fMagic == null) s_fMagic = typeof(Actor).GetField("dic_MagicData", bf); + if (s_fMagicArr == null) s_fMagicArr = typeof(PCActor).GetField("arr_magicData", bf); + var dic = s_fMagic != null ? s_fMagic.GetValue(pc) as Dictionary : null; + if (dic == null) { LastLog = "dic_MagicData 없음"; return; } + var arr = s_fMagicArr != null ? s_fMagicArr.GetValue(pc) as System.Array : null; + int n = arr != null ? arr.Length : 6; + for (int i = 0; i < n; i++) + if (!dic.ContainsKey(i)) dic.Add(i, new UseMagicInfo { m_uiIndex = i, m_SkillTableData = table_skilllist.Ins.Get_Data_orNull(sdata.Get_EquipSkillID(i)) }); + } + + /// 검증용 — 이동 키를 seconds 동안 누른 것과 같은 호출(카메라 기준 h · v · Update 의 같은 경로)을 돌리고 이동 거리를 MoveLog 에 남긴다. + public static string MoveFor(float seconds, float h, float v) + { + var ins = Ins as WLSkillTestHarness; if (ins == null) return "하네스 없음"; + if (!Ready || MyValue.MyPC == null) return "ready 아님"; + MoveLog = "이동 중"; ins.StartCoroutine(ins.CoMove(seconds, h, v)); + return "이동 시작 " + seconds + " s (h " + h + " · v " + v + ")"; + } + + IEnumerator CoMove(float seconds, float h, float v) + { + var pc = MyValue.MyPC as PCActor; if (pc == null) yield break; + Vector3 p0 = pc.Get_position(); float t0 = Time.time; string animMid = "-"; + while (Time.time - t0 < seconds) { _simH = h; _simV = v; animMid = pc.Get_CurAnim().ToString(); yield return null; } + _simH = _simV = 0f; + yield return null; + MoveLog = "이동 " + Vector3.Distance(p0, pc.Get_position()).ToString("F2") + " m / " + seconds + " s · 이동 중 anim " + animMid + " → 뗀 뒤 " + pc.Get_CurAnim() + " · joystick " + pc.JoystickStatus; + } + void OnDestroy() { try { if (System.IO.File.Exists(StatusPath)) System.IO.File.Delete(StatusPath); } catch { } Time.timeScale = 1f; } // ───────────────────────────────────────────────────────────────── @@ -216,22 +298,27 @@ namespace WL.SkillTest return "더미 " + pos.ToString("F1"); } - /// 낀 무기를 인벤토리 무기 목록에서 앞뒤로(dir ±1). + /// 낀 무기를 무기 종류(GroupNo) 순으로 앞뒤로(dir ±1 · O = -1 · P = +1). 종류마다 1개 — SortedItems 는 장착 중인 것을 맨 앞에 두므로 그대로 쓰면 같은 종류 2개 사이를 왕복했다(#947 2차 Play 실측 · 묵광 2개). public static string CycleWeapon(int dir) { if (!WLInventory.EnsureLoaded()) return "인벤토리 미로드"; var cur = WLInventory.EquippedInSlot(eFREquipmentType.Weapon); - var ids = new List(); var names = new List(); int curIdx = -1; + int curGroup = cur != null && cur.itemJson != null ? cur.itemJson.GroupNo : -1; + var grp = new List(); var ids = new List(); var names = new List(); foreach (var it in WLInventory.SortedItems()) { if (it == null || it.itemJson == null || !it.itemJson.IsEquipment || it.itemJson.EquipmentType != eFREquipmentType.Weapon) continue; - if (cur != null && ReferenceEquals(it, cur)) curIdx = ids.Count; - ids.Add(it.rawItem._id); names.Add(it.itemJson.Item_name + "(" + it.itemJson.GroupNo + ")"); + int g = it.itemJson.GroupNo; + if (grp.IndexOf(g) >= 0) continue; // 같은 종류는 첫 것(장착 중이면 그것)만 + grp.Add(g); ids.Add(it.rawItem._id); names.Add(it.itemJson.Item_name + "(" + g + ")"); } - if (ids.Count == 0) return "무기 없음"; - int next = curIdx < 0 ? 0 : (curIdx + dir + ids.Count) % ids.Count; + if (grp.Count == 0) return "무기 없음"; + var order = new List(); for (int i = 0; i < grp.Count; i++) order.Add(i); + order.Sort((a, b) => grp[a].CompareTo(grp[b])); + int curIdx = -1; for (int i = 0; i < order.Count; i++) if (grp[order[i]] == curGroup) { curIdx = i; break; } + int pos = curIdx < 0 ? 0 : (curIdx + dir + order.Count) % order.Count, next = order[pos]; bool ok = WLInventory.Equip(ids[next]); - return (ok ? "장착 " : "실패 ") + names[next] + " " + (next + 1) + "/" + ids.Count + (ok ? "" : " · " + WLInventory.LastMessage); + return (ok ? "장착 " : "실패 ") + names[next] + " " + (pos + 1) + "/" + order.Count + (ok ? "" : " · " + WLInventory.LastMessage); } public static string Describe() @@ -258,21 +345,28 @@ namespace WL.SkillTest if (pc == null) return; var cfg = Cfg; + // 이동 — 섬 조이스틱(WLIslandAvatar.DrivePc · 원본 FloatingJoystick)과 같은 호출 순서. 누름 = Set_AutoBraking(false) → JoystickStatus 1 · 매 프레임 Run_byJoystick(카메라 기준) · 뗌 = JoystickStatus 0 → Set_AutoBraking(true)(Play_Idle · 자동 전투 재개) + float h = 0f, v = 0f; if (cfg.moveKeys != 0) { - float h = (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow) ? 1f : 0f) - (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) ? 1f : 0f); - float v = (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow) ? 1f : 0f) - (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow) ? 1f : 0f); - if (h != 0f || v != 0f) - { - if (!_moving) { pc.Set_AutoBraking(false); pc.Set_JoystickStatus(1); _moving = true; } - var cam = Camera.main; - Vector3 fwd = cam != null ? Vector3.ProjectOnPlane(cam.transform.forward, Vector3.up) : Vector3.forward; - if (fwd.sqrMagnitude < 1e-4f) fwd = Vector3.forward; - fwd.Normalize(); - pc.Run_byJoystick((fwd * v + Vector3.Cross(Vector3.up, fwd) * h).normalized); - } - else if (_moving) { pc.Set_JoystickStatus(0); pc.Set_AutoBraking(true); _moving = false; } + h = (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow) ? 1f : 0f) - (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow) ? 1f : 0f); + v = (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow) ? 1f : 0f) - (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow) ? 1f : 0f); } + if (_simH != 0f || _simV != 0f) { h = _simH; v = _simV; } // 검증 프로브(MoveFor) — 키와 같은 경로 + if (h != 0f || v != 0f) + { + if (!_moving) { pc.Set_AutoBraking(false); pc.Set_JoystickStatus(1); _moving = true; } + var cam = Camera.main; + Vector3 fwd = cam != null ? Vector3.ProjectOnPlane(cam.transform.forward, Vector3.up) : Vector3.forward; + if (fwd.sqrMagnitude < 1e-4f) fwd = Vector3.forward; + fwd.Normalize(); + pc.Run_byJoystick((fwd * v + Vector3.Cross(Vector3.up, fwd) * h).normalized); + } + else if (_moving) { pc.Set_JoystickStatus(0); pc.Set_AutoBraking(true); _moving = false; } + + // 평지 가장자리 — 공격 전진·피격 넉백으로 PC·더미가 1분에 약 20 m 흘러간다(#947 2차 Play 실측) → 끝에 닿기 전에 둘 다 원점으로 + float half = cfg.groundSize * 0.5f - 3f; var pp = pc.Get_position(); + if (Mathf.Abs(pp.x) > half || Mathf.Abs(pp.z) > half) { pc.Set_Warp(NavPos(V3(cfg.spawnPos))); _msg = "평지 가장자리 — PC·더미 원점 " + ResetDummy(); } if (Input.GetKeyDown(_kAttack)) { if (Dummy != null) pc.Change_Target(false, Dummy); pc.Play_Attack(0, 1f); _msg = "기본 공격"; } if (Input.GetKeyDown(_kPrev)) _msg = CycleWeapon(-1); @@ -294,7 +388,8 @@ namespace WL.SkillTest if (WLInventory.Loaded) { var cur = WLInventory.EquippedInSlot(eFREquipmentType.Weapon); if (cur != null && cur.itemJson != null) w = cur.itemJson.Item_name + "(" + cur.itemJson.GroupNo + ")"; } string s = "WL 스킬 테스트 · " + Stage + (Ready ? "" : " …") + "\n무기 " + w + " 더미 HP " + (Dummy != null ? Dummy.Get_HP().ToString("F0") : "-") + (_slow ? " [슬로 ×" + Time.timeScale + "]" : "") + - "\nWASD 이동 · Space 공격 · Q 주력 · E 각성 · 숫자 등급 · [ ] 무기 · R 더미 · T 슬로 · P 일시정지" + + "\nWASD 이동 · " + _kAttack + " 공격 · " + WLSkillHotkey.Key + " 주력 · " + (WLSkillHotkey.Key2 != KeyCode.None ? WLSkillHotkey.Key2 + " 각성 · " : "") + "숫자 등급 · " + + _kPrev + " 무기 이전 · " + _kNext + " 무기 다음 · " + _kReset + " 더미 · " + _kSlow + " 슬로 · " + _kPause + " 일시정지" + (string.IsNullOrEmpty(_msg) ? "" : "\n" + _msg) + (Ready ? "\n" + string.Join(" · ", Laps.ToArray()) : ""); var r = new Rect(Screen.width * 0.01f, Screen.height * 0.01f, Screen.width * 0.6f, Screen.height * 0.3f); GUI.color = new Color(0f, 0f, 0f, 0.6f); GUI.Label(new Rect(r.x + 1, r.y + 1, r.width, r.height), s, _style);