77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
using UnityEngine;
|
|
|
|
public class ActivityTrigger : MonoBehaviour
|
|
{
|
|
public enum JenisInteraksi
|
|
{
|
|
AmbilAktivitas,
|
|
InteraksiNPC
|
|
}
|
|
|
|
[Header("Data Aktivitas")]
|
|
public string activityId;
|
|
public JenisInteraksi jenisInteraksi = JenisInteraksi.AmbilAktivitas;
|
|
|
|
[TextArea]
|
|
public string pesanBerhasil;
|
|
|
|
[Header("Dialog NPC - hanya untuk InteraksiNPC")]
|
|
public string namaNPC = "Ibu";
|
|
|
|
[TextArea]
|
|
public string teksDialogNPC = "Hati-hati ya, Salim. Jangan lupa bersikap baik.";
|
|
|
|
public string teksOpsiNPC1 = "Baik";
|
|
public string teksOpsiNPC2 = "Terima kasih";
|
|
|
|
[Header("Setelah Aktivitas Selesai")]
|
|
public bool hilangkanObjekSetelahSelesai = false;
|
|
public GameObject objekYangDihilangkan;
|
|
|
|
private Manager_Game_RPG manager;
|
|
private Collider2D col;
|
|
private bool sudahSelesai = false;
|
|
|
|
private void Awake()
|
|
{
|
|
col = GetComponent<Collider2D>();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
manager = FindObjectOfType<Manager_Game_RPG>();
|
|
}
|
|
|
|
private void OnTriggerEnter2D(Collider2D collision)
|
|
{
|
|
if (sudahSelesai) return;
|
|
if (!collision.CompareTag("Player")) return;
|
|
if (manager == null) return;
|
|
|
|
manager.SetAktivitasTerdekat(this);
|
|
}
|
|
|
|
private void OnTriggerExit2D(Collider2D collision)
|
|
{
|
|
if (!collision.CompareTag("Player")) return;
|
|
if (manager == null) return;
|
|
|
|
manager.SetAktivitasTerdekat(null);
|
|
}
|
|
|
|
public void TandaiSelesai()
|
|
{
|
|
sudahSelesai = true;
|
|
|
|
if (col != null)
|
|
col.enabled = false;
|
|
|
|
if (hilangkanObjekSetelahSelesai)
|
|
{
|
|
if (objekYangDihilangkan != null)
|
|
objekYangDihilangkan.SetActive(false);
|
|
else
|
|
gameObject.SetActive(false);
|
|
}
|
|
}
|
|
} |