2026-06-19 UI, UI로직
This commit is contained in:
61
Assets/My project/Memory Scripts/UI/MemoryPieceReward.cs
Normal file
61
Assets/My project/Memory Scripts/UI/MemoryPieceReward.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user