diff --git a/Assets/WL/Island/Resources/WL/WLIslandSettings.asset b/Assets/WL/Island/Resources/WL/WLIslandSettings.asset index 2faf667ca..95e664ab7 100644 --- a/Assets/WL/Island/Resources/WL/WLIslandSettings.asset +++ b/Assets/WL/Island/Resources/WL/WLIslandSettings.asset @@ -140,7 +140,7 @@ MonoBehaviour: gateColor: {r: 0.28, g: 0.5, b: 0.66, a: 1} gatePrefabPath: Assets/WL/Island/Prefabs/WL_DungeonGate_Arch.prefab platformUseFarm: 0 - platformPosition: {x: -2, y: 0, z: -2} + platformPosition: {x: -2.5, y: 0, z: 8.5} - enabled_: 0 id: 3 displayName: "\uB358\uC804 3" @@ -153,7 +153,7 @@ MonoBehaviour: gateColor: {r: 0.62, g: 0.42, b: 0.24, a: 1} gatePrefabPath: Assets/WL/Island/Prefabs/WL_DungeonGate_Arch.prefab platformUseFarm: 0 - platformPosition: {x: -2.5, y: 0, z: 8.5} + platformPosition: {x: -2, y: 0, z: -2} - enabled_: 0 id: 4 displayName: "\uB358\uC804 4" @@ -166,4 +166,4 @@ MonoBehaviour: gateColor: {r: 0.55, g: 0.24, b: 0.3, a: 1} gatePrefabPath: Assets/WL/Island/Prefabs/WL_DungeonGate_Arch.prefab platformUseFarm: 0 - platformPosition: {x: 6, y: 0, z: -2} + platformPosition: {x: 0, y: 0, z: 3} diff --git a/Assets/WL/Island/WLIslandGateFlow.cs b/Assets/WL/Island/WLIslandGateFlow.cs index 7b4a21314..3c3393da5 100644 --- a/Assets/WL/Island/WLIslandGateFlow.cs +++ b/Assets/WL/Island/WLIslandGateFlow.cs @@ -393,6 +393,13 @@ namespace WL.Island if (rends[r] == null || !rends[r].enabled) continue; rends[r].enabled = false; s_hiddenRends.Add(rends[r]); FenceRenderersHidden++; } + // 2026-09-15 PD 「플레이어 위치에 투명 벽」 — 렌더러만 끈 울타리의 콜라이더가 보이지 않는 벽으로 남았다 → 같이 끈다. + var fcols = ch.GetComponentsInChildren(true); + for (int r = 0; r < fcols.Length; r++) + { + if (fcols[r] == null || !fcols[r].enabled) continue; + fcols[r].enabled = false; s_hiddenCols.Add(fcols[r]); + } } } @@ -425,11 +432,13 @@ namespace WL.Island static IEnumerator Co_ReHideFences(WLIslandSettings cfg, Scene scene) { float wait = Mathf.Max(0.5f, cfg.farmReHideDelaySeconds); - for (int k = 0; k < 8; k++) + // 섬이 살아 있는 동안 3 s 마다 계속 훑는다(이미 꺼진 것은 건너뛰어 비용 0에 가깝다) — 늦게 활성화되는 타일·밭까지 덮는다. + for (int k = 0; k < 400; k++) { yield return new WaitForSeconds(wait); - if (cfg == null || cfg.hideIslandFences == 0) yield break; + if (cfg == null || cfg.hideIslandFences == 0 || !scene.IsValid() || !scene.isLoaded) yield break; HideIslandFences(cfg, scene, null); + if (cfg.hideFarms != 0) { Vector3 _c; HideFarms(cfg, scene, out _c); } // 늦게 생긴 밭의 울타리·소품도 } } diff --git a/Assets/WL/Island/WLIslandSettings.cs b/Assets/WL/Island/WLIslandSettings.cs index fd435f0cf..a34337463 100644 --- a/Assets/WL/Island/WLIslandSettings.cs +++ b/Assets/WL/Island/WLIslandSettings.cs @@ -553,6 +553,7 @@ namespace WL.Island extraSkipIfComponent = "Merchant", // 좌판 안에 이미 상인이 있으면 안 덧붙인다 extraOffset = new Vector3(0f, 0f, -1.1f), yaw = 180f, + keepCollider = 1, // 2026-09-15 PD — 좌판 트리거가 있어야 판매가 된다 }, new WLFlowStepDef { @@ -560,6 +561,7 @@ namespace WL.Island platformFromDungeonRow = 2, // 기존 발판 #3 좌표 kind = "prefab", prefabPath = "Assets/FarmingIsland/Prefabs/FruitTrees/Tree_Apple.prefab", + keepCollider = 1, // 2026-09-15 PD 「과일 나무 수집이 안 된다」 — 콜라이더를 지우면 FI 수확 트리거가 안 걸린다 }, new WLFlowStepDef {