47 lines
1.1 KiB
C#
47 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
[DisallowMultipleComponent]
|
|
public class NPCInteract : MonoBehaviour
|
|
{
|
|
[Header("Dialogue Data")]
|
|
[SerializeField] private DialogueData dialogue;
|
|
|
|
[Header("Reference")]
|
|
[SerializeField] private DialogueManager manager;
|
|
|
|
[Header("Settings")]
|
|
[SerializeField] private bool autoFindManager = true;
|
|
|
|
private void Awake()
|
|
{
|
|
if (manager == null && autoFindManager)
|
|
manager = FindFirstObjectByType<DialogueManager>();
|
|
}
|
|
|
|
public void Interact()
|
|
{
|
|
if (dialogue == null)
|
|
{
|
|
Debug.LogWarning($"[NPCInteract] {name}에 DialogueData가 연결되지 않았습니다.");
|
|
return;
|
|
}
|
|
|
|
if (manager == null)
|
|
{
|
|
Debug.LogWarning($"[NPCInteract] {name}에 DialogueManager가 연결되지 않았습니다.");
|
|
return;
|
|
}
|
|
|
|
manager.StartDialogueFromNPC(dialogue, transform);
|
|
}
|
|
|
|
public void SetDialogue(DialogueData newDialogue)
|
|
{
|
|
dialogue = newDialogue;
|
|
}
|
|
|
|
public void SetManager(DialogueManager newManager)
|
|
{
|
|
manager = newManager;
|
|
}
|
|
} |