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

62 lines
1.6 KiB
C#

using UnityEngine;
using UnityEngine.Events;
public class MemoryPieceReward : MonoBehaviour
{
[Header("Reference")]
[SerializeField] private MemoryProgressManager memoryProgressManager;
[Header("Reward")]
[SerializeField] private int rewardAmount = 1;
[SerializeField] private bool giveOnlyOnce = true;
[Header("Auto Find")]
[SerializeField] private bool autoFindManager = true;
[Header("Events")]
public UnityEvent onRewardGiven;
public UnityEvent onRewardAlreadyGiven;
[Header("Debug")]
[SerializeField] private bool showDebugLog = true;
private bool alreadyGiven;
private void Awake()
{
if (memoryProgressManager == null && autoFindManager)
memoryProgressManager = FindFirstObjectByType<MemoryProgressManager>();
}
public void GiveReward()
{
if (giveOnlyOnce && alreadyGiven)
{
onRewardAlreadyGiven?.Invoke();
if (showDebugLog)
Debug.Log("[MemoryPieceReward] 이미 지급된 기억의 조각입니다.");
return;
}
if (memoryProgressManager == null)
{
Debug.LogWarning("[MemoryPieceReward] MemoryProgressManager가 연결되지 않았습니다.");
return;
}
memoryProgressManager.AddMemoryPiece(rewardAmount);
alreadyGiven = true;
onRewardGiven?.Invoke();
if (showDebugLog)
Debug.Log($"[MemoryPieceReward] 기억의 조각 +{rewardAmount}");
}
public void ResetReward()
{
alreadyGiven = false;
}
}