Files
WhaleAdventure_VR/Assets/My project/Memory Scripts/UI/MemoryPiecePickup.cs
skrwns304@gmail.com b1e85a5b89 2026-06-19 UI, UI로직
2026-06-19 14:27:40 +09:00

53 lines
1.3 KiB
C#

using UnityEngine;
using UnityEngine.Events;
public class MemoryPiecePickup : MonoBehaviour
{
[Header("Reference")]
[SerializeField] private MemoryProgressManager memoryProgressManager;
[Header("Settings")]
[SerializeField] private int amount = 1;
[SerializeField] private bool destroyAfterPickup = true;
[SerializeField] private bool autoFindManager = true;
[SerializeField] private string playerTag = "Player";
[Header("Events")]
public UnityEvent onPickedUp;
private bool pickedUp;
private void Awake()
{
if (memoryProgressManager == null && autoFindManager)
memoryProgressManager = FindFirstObjectByType<MemoryProgressManager>();
}
public void PickUp()
{
if (pickedUp)
return;
pickedUp = true;
if (memoryProgressManager != null)
memoryProgressManager.AddMemoryPiece(amount);
else
Debug.LogWarning("[MemoryPiecePickup] MemoryProgressManager가 연결되지 않았습니다.");
onPickedUp?.Invoke();
if (destroyAfterPickup)
Destroy(gameObject);
}
private void OnTriggerEnter(Collider other)
{
if (pickedUp)
return;
if (other.CompareTag(playerTag))
PickUp();
}
}