ProjectDDD/Assets/_DDD/_Scripts/RestaurantCharacter/AI/Customer/RestaurantCustomerBlackboardComponent.cs
Jeonghyeon Ha 4ef63ec9a9 AI 비헤이비어 트리 액션 및 컨디셔널 구현
RestaurantOrderAvailable, StartRestaurantOrder, MoveToInteractionTarget
2025-08-21 19:12:06 +09:00

39 lines
1.3 KiB
C#

using Opsive.BehaviorDesigner.Runtime;
using UnityEngine;
namespace DDD
{
public class RestaurantCustomerBlackboardComponent : MonoBehaviour, IRestaurantCustomerBlackboard, IAISharedBlackboard
{
private Subtree _subtree;
private GameObject _currentInteractionTarget;
public void InitializeWithBehaviorTree(Subtree subtree)
{
_subtree = subtree;
if (_subtree != null)
{
_subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.SelfGameObject), gameObject);
}
}
public void SetCustomerData(CustomerData inCustomerData)
{
if (_subtree == null) return;
_subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.CustomerData), inCustomerData);
}
public void SetCurrentInteractionTarget(GameObject targetGameObject)
{
_currentInteractionTarget = targetGameObject;
if (_subtree == null) return;
_subtree.SetVariableValue(nameof(RestaurantCustomerBlackboardKey.CurrentInteractionTarget), targetGameObject);
}
public GameObject GetCurrentInteractionTarget()
{
// 캐시 우선 반환. 필요 시 Subtree에서 직접 조회하도록 확장 가능.
return _currentInteractionTarget;
}
}
}