using UnityEngine; // 히든 분기를 물리 접촉으로 발동시키는 트리거 존 (KimchiHitZone과 같은 방식). // // 예) NPC 얼굴에 IsTrigger 콜라이더를 붙이고 GestureKey="slap", RequiredTag="PlayerHand". // 대화 노드의 HiddenBranch가 설정되고 HiddenGestureKey="slap"인 순간에만 // 이 존을 손으로 치면 히든 분기를 탄다. 그 외 시간엔 쳐도 아무 일도 안 일어난다. // // 콜라이더는 항상 켜 둬도 된다 — 발동 여부는 DialogPlayer의 무장 상태가 결정하므로, // 노드마다 존을 껐다 켰다 할 필요가 없다. public class DialogGestureZone : MonoBehaviour { [Tooltip("이 존이 발동시킬 제스처 키. 대화 노드의 HiddenGestureKey와 일치해야 한다. " + "노드 쪽 키가 비어 있으면 아무 존이나 발동 가능")] [SerializeField] private string _gestureKey = "slap"; [Tooltip("이 태그를 가진 콜라이더가 들어와야 발동 (예: 손 컨트롤러). 비우면 태그 무시")] [SerializeField] private string _requiredTag = "PlayerHand"; private void OnTriggerEnter(Collider other) { if (!string.IsNullOrEmpty(_requiredTag) && !other.CompareTag(_requiredTag)) return; HiddenBranchResolver.Fire(_gestureKey); } }