66 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|