From b57cc459027213c5e0072150f41366d894947cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=82=B0?= Date: Tue, 26 Aug 2025 19:14:52 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A9=94=EB=AA=A8=EB=A6=AC=20=EB=88=84?= =?UTF-8?q?=EC=88=98,=20UI=20=EB=B3=80=EA=B2=BD=EC=A0=90=20=EB=A8=B8?= =?UTF-8?q?=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Addressables/Prefabs/CustomerNpc.prefab | 25 ++++- .../DataObjects/RestaurantPlayerData.asset | 4 +- .../Ui/Common/EmptyIngredient.png.meta | 13 +++ .../CookUiPanel/CookIngredientPanel.png.meta | 13 +++ .../Ui/CookUiPanel/CookMenuPanel.png.meta | 13 +++ .../Ui/CookUiPanel/SelectedCookPanel.png.meta | 13 +++ .../SelectedCookwarePanel.png.meta | 13 +++ .../Common/Actions/MoveToInteractionTarget.cs | 2 + .../Actions/WaitForPlayerInteraction.cs | 94 ++++++++++++------- ProjectSettings/EditorBuildSettings.asset | 2 +- 10 files changed, 152 insertions(+), 40 deletions(-) diff --git a/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab b/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab index 0241686e7..80cdc789c 100644 --- a/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab +++ b/Assets/_DDD/_Addressables/Prefabs/CustomerNpc.prefab @@ -1178,7 +1178,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7462519206451630147, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} propertyPath: m_Layer - value: 0 + value: 16 objectReference: {fileID: 0} - target: {fileID: 7545136660434259176, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} propertyPath: m_Constraints @@ -1210,6 +1210,9 @@ PrefabInstance: - targetCorrespondingSourceObject: {fileID: 7462519206451630147, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} insertIndex: -1 addedObject: {fileID: 3825874317044733320} + - targetCorrespondingSourceObject: {fileID: 7462519206451630147, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} + insertIndex: -1 + addedObject: {fileID: 1122074513716966771} m_SourcePrefab: {fileID: 100100000, guid: ceeea618d8ee23642a0e56b3f963448c, type: 3} --- !u!1 &4266090516809920735 stripped GameObject: @@ -1252,3 +1255,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: af69e82818254bfa9cabb2dbf9430850, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1122074513716966771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4266090516809920735} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 201f9e6d7ca7404baa9945950292a392, type: 3} + m_Name: + m_EditorClassIdentifier: + _interactionType: 4 + _executionParameters: + _holdTime: 0 + _displayParameters: + _messageKey: + _interactionAvailableFlows: 2 + _aiInteractionPoints: [] + autoInitialize: 1 diff --git a/Assets/_DDD/_Addressables/So/RestaurantData/DataObjects/RestaurantPlayerData.asset b/Assets/_DDD/_Addressables/So/RestaurantData/DataObjects/RestaurantPlayerData.asset index 4d63d37ff..890a0f723 100644 --- a/Assets/_DDD/_Addressables/So/RestaurantData/DataObjects/RestaurantPlayerData.asset +++ b/Assets/_DDD/_Addressables/So/RestaurantData/DataObjects/RestaurantPlayerData.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c547bb4c8e960c6504b74f52fce7db1ef4e186627a316a5d33086c848c515ec2 -size 1999 +oid sha256:c0b7877dd04da4027a47c923d7c38dbbdb1c4aae40c4a709411f0845190e7cf7 +size 2001 diff --git a/Assets/_DDD/_Raw/Sprites/Ui/Common/EmptyIngredient.png.meta b/Assets/_DDD/_Raw/Sprites/Ui/Common/EmptyIngredient.png.meta index c64b846d2..2a7c52818 100644 --- a/Assets/_DDD/_Raw/Sprites/Ui/Common/EmptyIngredient.png.meta +++ b/Assets/_DDD/_Raw/Sprites/Ui/Common/EmptyIngredient.png.meta @@ -119,6 +119,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookIngredientPanel.png.meta b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookIngredientPanel.png.meta index c43ff382f..5ae0d3fcc 100644 --- a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookIngredientPanel.png.meta +++ b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookIngredientPanel.png.meta @@ -119,6 +119,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookMenuPanel.png.meta b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookMenuPanel.png.meta index 8b52c85b4..c63239c25 100644 --- a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookMenuPanel.png.meta +++ b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/CookMenuPanel.png.meta @@ -119,6 +119,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookPanel.png.meta b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookPanel.png.meta index 9f8ee0508..f8fad6a20 100644 --- a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookPanel.png.meta +++ b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookPanel.png.meta @@ -119,6 +119,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookwarePanel.png.meta b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookwarePanel.png.meta index bf3e4ea5b..b7ba6dd19 100644 --- a/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookwarePanel.png.meta +++ b/Assets/_DDD/_Raw/Sprites/Ui/CookUiPanel/SelectedCookwarePanel.png.meta @@ -119,6 +119,19 @@ TextureImporter: ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Common/Actions/MoveToInteractionTarget.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Common/Actions/MoveToInteractionTarget.cs index 192081afc..828782504 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Common/Actions/MoveToInteractionTarget.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Common/Actions/MoveToInteractionTarget.cs @@ -29,6 +29,7 @@ public class MoveToInteractionTarget : Action public override void OnStart() { + if (cachedTarget != null) return; movement = gameObject.GetComponentInParent(); repathTimer = 0f; isMoving = false; @@ -43,6 +44,7 @@ public override TaskStatus OnUpdate() var target = GetTarget(); if (target == null) return failIfNoTarget ? TaskStatus.Failure : TaskStatus.Success; + Debug.Log(target.name); if (ShouldUpdateDestination()) { diff --git a/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Customer/Actions/WaitForPlayerInteraction.cs b/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Customer/Actions/WaitForPlayerInteraction.cs index 659047263..220788be6 100644 --- a/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Customer/Actions/WaitForPlayerInteraction.cs +++ b/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Customer/Actions/WaitForPlayerInteraction.cs @@ -16,49 +16,71 @@ public class WaitForPlayerInteraction : Action public override void OnStart() { - GameObject interactionTarget = null; - var shared = gameObject.GetComponentInChildren(); - if (shared != null) + // 의자가 복합 상태를 가지게 될 경우 + // GameObject interactionTarget = null; + // var shared = gameObject.GetComponentInChildren(); + // if (shared != null) + // { + // interactionTarget = shared.GetCurrentInteractionTarget(); + // } + // else + // { + // // 하위 호환: 고객 전용 블랙보드 지원 + // var customerBb = gameObject.GetComponentInParent(); + // interactionTarget = customerBb?.GetCurrentInteractionTarget(); + // } + // + // if (interactionTarget == null) + // { + // Debug.LogError($"[{GetType().Name}] interactionTarget을 찾을 수 없습니다: {gameObject.name}"); + // return; + // } + // + // if (!interactionTarget.TryGetComponent(out var interactionComponent)) + // Debug.LogError($"[{interactionTarget.name}] {nameof(interactionComponent)}를 찾을 수 없습니다: {gameObject.name}"); + // if (interactionComponent is IInteractionSubsystemOwner subsystemOwner) + // { + // if (!subsystemOwner.TryGetSubsystemObject(out var subsystem)) + // { + // Debug.LogError($"[{GetType().Name}] {nameof(_targetOrderType)}의 Subsystem을 찾을 수 없습니다: {gameObject.name}"); + // _isGetInteractionSubsystem = false; + // return; + // } + // + // _isGetInteractionSubsystem = true; + // subsystem.SetInteractionSubsystemType(_targetOrderType); + // + // if (!gameObject.TryGetComponent(out var interactor)) + // { + // Debug.LogError($"[{GetType().Name}] IInteractor를 찾을 수 없습니다: {gameObject.name}"); + // return; + // } + // + // interactor.CanInteractTo(interactionComponent); + // + // _interactionSubsystem = subsystem; + // } + + if (!gameObject.TryGetComponent(out var interactionComponent)) { - interactionTarget = shared.GetCurrentInteractionTarget(); - } - else - { - // 하위 호환: 고객 전용 블랙보드 지원 - var customerBb = gameObject.GetComponentInParent(); - interactionTarget = customerBb?.GetCurrentInteractionTarget(); + Debug.LogError($"[{GetType().Name}]에서 interactionComponent를 찾을 수 없습니다: {gameObject.name}"); + return; } - if (interactionTarget == null) + if (interactionComponent is not IInteractionSubsystemOwner subsystemOwner) { - Debug.LogError($"[{GetType().Name}] interactionTarget을 찾을 수 없습니다: {gameObject.name}"); + Debug.LogError($"[{GetType().Name}]에서 {nameof(IInteractionSubsystemOwner)}를 찾을 수 없습니다: {gameObject.name}"); + return; + } + + if (!subsystemOwner.TryGetSubsystemObject(out _interactionSubsystem)) + { + Debug.LogError($"[{GetType().Name}]에서 {nameof(IInteractionSubsystemObject)}를 찾을 수 없습니다: {gameObject.name}"); return; } - if (!interactionTarget.TryGetComponent(out var interactionComponent)) - Debug.LogError($"[{interactionTarget.name}] {nameof(interactionComponent)}를 찾을 수 없습니다: {gameObject.name}"); - if (interactionComponent is IInteractionSubsystemOwner subsystemOwner) - { - if (!subsystemOwner.TryGetSubsystemObject(out var subsystem)) - { - Debug.LogError($"[{GetType().Name}] {nameof(_targetOrderType)}의 Subsystem을 찾을 수 없습니다: {gameObject.name}"); - _isGetInteractionSubsystem = false; - return; - } - - _isGetInteractionSubsystem = true; - subsystem.SetInteractionSubsystemType(_targetOrderType); - - if (!gameObject.TryGetComponent(out var interactor)) - { - Debug.LogError($"[{GetType().Name}] IInteractor를 찾을 수 없습니다: {gameObject.name}"); - return; - } - - interactor.CanInteractTo(interactionComponent); - - _interactionSubsystem = subsystem; - } + _interactionSubsystem.SetInteractionSubsystemType(_targetOrderType); + _isGetInteractionSubsystem = true; } public override TaskStatus OnUpdate() diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index ed8485fa0..b1d747c7b 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f86abe14bf9fc4c7c93dfa96efd110ef0f56c3fb96a952c57e06a723fc87c352 +oid sha256:5d69f9ac4352f59df16943fd905dd7351328f295b2a8e4f74e8346f7bd4dc1bc size 1075