Files
WhaleAdventure_VR/Assets/02_Scripts/Interaction/InteractionObject.cs

21 lines
987 B
C#

using UnityEngine;
// 상호작용 가능한 오브젝트의 베이스. InteractionDetector가 이 타입을 감지하고 Interact()를 호출한다.
// 감지를 위해 Collider가 반드시 필요 (RequireComponent로 강제).
[RequireComponent(typeof(Collider))]
public abstract class InteractionObject : MonoBehaviour
{
[SerializeField] protected string _promptText = "상호작용"; // UI 프롬프트 문구 (예: "앉으려면 E")
[SerializeField] protected Transform _interactionPos;
// 지속형 상호작용이 진행 중인지 (예: 앉아있는 중).
// true인 동안 디텍터는 대상을 이 오브젝트로 잠가, 다음 키 입력이 종료(해제)로 가게 한다.
public bool IsInteracting { get; protected set; }
public virtual string PromptText => _promptText;
// 상호작용 키를 눌렀을 때 호출. 시작/종료(토글) 여부는 각 구현이 결정한다.
public abstract void Interact(PlayerController player);
}