물품들 상호작용 달기

This commit is contained in:
2026-07-17 12:45:12 +09:00
parent ad6ccadc8e
commit fc06825972
23 changed files with 229 additions and 26 deletions

View File

@@ -0,0 +1,16 @@
using System;
using UnityEngine;
// 미션 목표 하나의 베이스. Mission 오브젝트의 자식으로 두면 자동 수집된다.
// 새 종류의 미션이 필요하면 이걸 상속해서 IsComplete 구현 + 상태가 바뀔 때
// RaiseChanged()만 호출하면 된다 (예: 물건 옮기기, 특정 위치 방문, NPC에게 아이템 전달).
public abstract class MissionObjective : MonoBehaviour
{
// 목표 달성 여부 — 되돌릴 수 있는 목표(물건을 도로 빼는 등)는 false로 돌아가도 된다.
// 미션 완료는 "모든 목표가 동시에 true"인 순간 Mission 쪽에서 확정(래치)된다.
public abstract bool IsComplete { get; }
// 달성 상태가 바뀔 때마다 발행 — Mission이 구독해서 완료를 재판정한다
public event Action Changed;
protected void RaiseChanged() => Changed?.Invoke();
}