Files
WhaleAdventure_VR/Assets/My project/Memory Scripts/UI/MemoryProgressDebugResetter.cs
2026-06-24 17:13:40 +09:00

66 lines
2.0 KiB
C#

using UnityEngine;
[DisallowMultipleComponent]
public class MemoryProgressDebugResetter : MonoBehaviour
{
[Header("References")]
[SerializeField] private MemoryProgressManager memoryProgressManager;
[SerializeField] private MemoryPieceReward[] rewardsToReset;
[SerializeField] private MemoryPiecePickup[] pickupsToReset;
[Header("Options")]
[SerializeField] private bool autoFindIfEmpty = true;
[ContextMenu("Reset Memory Progress And Rewards")]
public void ResetMemoryProgressAndRewards()
{
ResolveReferencesIfNeeded();
if (memoryProgressManager != null)
memoryProgressManager.ResetProgress();
if (rewardsToReset != null)
{
for (int i = 0; i < rewardsToReset.Length; i++)
{
if (rewardsToReset[i] != null)
rewardsToReset[i].ResetReward();
}
}
if (pickupsToReset != null)
{
for (int i = 0; i < pickupsToReset.Length; i++)
{
if (pickupsToReset[i] != null)
pickupsToReset[i].ResetPickup();
}
}
Debug.Log("[MemoryProgressDebugResetter] 기억의 조각 진행도 / 보상 / 픽업 상태를 초기화했습니다.", this);
}
public void ClearSavedProgressOnly()
{
ResolveReferencesIfNeeded();
if (memoryProgressManager != null)
memoryProgressManager.ClearSavedProgress();
}
private void ResolveReferencesIfNeeded()
{
if (!autoFindIfEmpty)
return;
if (memoryProgressManager == null)
memoryProgressManager = FindFirstObjectByType<MemoryProgressManager>();
if (rewardsToReset == null || rewardsToReset.Length == 0)
rewardsToReset = FindObjectsByType<MemoryPieceReward>(FindObjectsSortMode.None);
if (pickupsToReset == null || pickupsToReset.Length == 0)
pickupsToReset = FindObjectsByType<MemoryPiecePickup>(FindObjectsSortMode.None);
}
}