feat: 스테이지 클리어 데이터 저장 및 불러오기 로직 추가
This commit is contained in:
@@ -15,18 +15,18 @@ namespace TON
|
||||
// 클리어한 스테이지 아이디
|
||||
public string stageId;
|
||||
// 클리어에 소요된 시간
|
||||
public int clearTime;
|
||||
public float clearTime;
|
||||
// 클리어 시간에 따른 별점
|
||||
public int starRating;
|
||||
// 클리어한 날짜와 시간 정보
|
||||
public string dateTime;
|
||||
|
||||
public StageClearData(string characterId, string stageId, int clearTime, int starRating)
|
||||
public StageClearData(string characterId, string stageId, float clearTime, int starRating)
|
||||
{
|
||||
id = $"SC{DateTime.UtcNow:yyyyMMddHHmmss}-{characterId}-{stageId}";
|
||||
this.characterId = characterId;
|
||||
this.stageId = stageId;
|
||||
this.clearTime = clearTime;
|
||||
this.clearTime = Mathf.Round(clearTime * 100f) / 100f; ;
|
||||
this.starRating = starRating;
|
||||
dateTime = DateTime.UtcNow.ToString();
|
||||
}
|
||||
|
||||
@@ -1,23 +1,46 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Assertions;
|
||||
|
||||
namespace TON
|
||||
{
|
||||
public class StageManager : SingletonBase<StageManager>
|
||||
{
|
||||
public List<StageClearData> stageClearDatas { get; private set; }
|
||||
|
||||
private float stageStartTime; // 스테이지 시작 시간
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
LoadStageClearData();
|
||||
}
|
||||
|
||||
private void LoadStageClearData()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
JSONLoader.SaveJsonToPersistentData("stageClear");
|
||||
#endif
|
||||
stageClearDatas = JSONLoader.LoadJsonFromPersistentData<List<StageClearData>>("stageClear");
|
||||
if (stageClearDatas == null)
|
||||
{
|
||||
stageClearDatas = new List<StageClearData>();
|
||||
}
|
||||
}
|
||||
|
||||
private void SaveStageClearData()
|
||||
{
|
||||
Assert.IsTrue(JSONLoader.SaveUpdatedJsonToPersistentData(stageClearDatas, "stageClear"));
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public void StartStage()
|
||||
{
|
||||
stageStartTime = Time.time;
|
||||
}
|
||||
|
||||
public int GetStarCount()
|
||||
public int GetStarCount(float elapsedTime)
|
||||
{
|
||||
float elapsedTime = Time.time - stageStartTime;
|
||||
|
||||
if (elapsedTime <= 180f)
|
||||
return 3;
|
||||
else if (elapsedTime <= 300f)
|
||||
@@ -26,11 +49,16 @@ namespace TON
|
||||
return 1;
|
||||
}
|
||||
|
||||
public void StageClear()
|
||||
public void StageClear(string characterId, string stageId)
|
||||
{
|
||||
int starCount = GetStarCount();
|
||||
float clearTime = Time.time - stageStartTime;
|
||||
int starCount = GetStarCount(clearTime);
|
||||
Debug.Log($"스테이지 클리어! 별 개수: {starCount}");
|
||||
// UI 업데이트, 데이터 저장 로직 추가 가능
|
||||
|
||||
// UI 업데이트, 데이터 저장 로직 추가
|
||||
StageClearData stageClearData = new StageClearData(characterId, stageId, clearTime, starCount);
|
||||
stageClearDatas.Add(stageClearData);
|
||||
SaveStageClearData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user