상호작용이 불가능한 상태에서도 모달 UI가 나타나도록 변경
This commit is contained in:
@@ -12,6 +12,7 @@ namespace Northbound
|
||||
[SerializeField] private PlayerInteraction playerInteraction;
|
||||
|
||||
private IInteractable _currentInteractable;
|
||||
private IInteractable _previousUnavailableInteractable;
|
||||
private bool _isEnabled = false;
|
||||
|
||||
private void Awake()
|
||||
@@ -33,14 +34,13 @@ namespace Northbound
|
||||
|
||||
FindModalComponent();
|
||||
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.HideModal();
|
||||
}
|
||||
else
|
||||
if (interactableModal == null)
|
||||
{
|
||||
Debug.LogError("[InteractableModalManager] InteractableModal is still null in Start!");
|
||||
}
|
||||
|
||||
// Start()에서 HideModal()을 호출하지 않음 - 첫 번째 Update에서 Modal이 표시되지 않는 문제 방지
|
||||
// modalPanel과 unavailablePanel은 InteractableModal.Start()에서 이미 false로 설정됨
|
||||
}
|
||||
|
||||
private void FindModalComponent()
|
||||
@@ -88,16 +88,26 @@ namespace Northbound
|
||||
_isEnabled = true;
|
||||
|
||||
IInteractable detectedInteractable = GetDetectedInteractable();
|
||||
IInteractable unavailableInteractable = playerInteraction.CurrentUnavailableInteractable;
|
||||
|
||||
if (detectedInteractable != _currentInteractable)
|
||||
bool interactableChanged = detectedInteractable != _currentInteractable;
|
||||
bool unavailableChanged = unavailableInteractable != _previousUnavailableInteractable;
|
||||
|
||||
if (interactableChanged || unavailableChanged)
|
||||
{
|
||||
_currentInteractable = detectedInteractable;
|
||||
_previousUnavailableInteractable = unavailableInteractable;
|
||||
|
||||
if (_currentInteractable != null)
|
||||
{
|
||||
Debug.Log($"[InteractableModalManager] Show modal for interactable");
|
||||
ShowModal(_currentInteractable);
|
||||
}
|
||||
else if (unavailableInteractable != null)
|
||||
{
|
||||
Debug.Log($"[InteractableModalManager] Show unavailable message");
|
||||
ShowUnavailableMessageModal(unavailableInteractable);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"[InteractableModalManager] Hide modal");
|
||||
@@ -149,6 +159,14 @@ namespace Northbound
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowUnavailableMessageModal(IInteractable interactable)
|
||||
{
|
||||
if (interactableModal != null)
|
||||
{
|
||||
interactableModal.ShowUnavailableMessage(interactable);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateModalContent()
|
||||
{
|
||||
if (interactableModal != null)
|
||||
|
||||
Reference in New Issue
Block a user