파일 입출력과 JSON변환 예외처리
This commit is contained in:
parent
70eb7d3268
commit
1925579508
@ -65,19 +65,26 @@ public class ReplayManager : Singleton<ReplayManager>
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void SaveReplayData(PlayerType winnerPlayerType)
|
public void SaveReplayData(PlayerType winnerPlayerType)
|
||||||
{
|
{
|
||||||
string time = DateTime.Now.ToString(("yyyy-MM-dd HH_mm_ss"));
|
try
|
||||||
_recordingReplayData.gameDate = time;
|
{
|
||||||
string winner = winnerPlayerType == PlayerType.PlayerA ? "PlayerA" : "PlayerB";
|
string time = DateTime.Now.ToString(("yyyy-MM-dd HH_mm_ss"));
|
||||||
|
_recordingReplayData.gameDate = time;
|
||||||
|
string winner = winnerPlayerType == PlayerType.PlayerA ? "PlayerA" : "PlayerB";
|
||||||
string json = JsonUtility.ToJson(_recordingReplayData, true);
|
|
||||||
|
|
||||||
|
string json = JsonUtility.ToJson(_recordingReplayData, true);
|
||||||
string path = Path.Combine(Application.persistentDataPath, $"{time}.json");
|
|
||||||
File.WriteAllText(path, json);
|
|
||||||
|
string path = Path.Combine(Application.persistentDataPath, $"{time}.json");
|
||||||
//최신 데이터 10개만 유지되도록 저장
|
File.WriteAllText(path, json);
|
||||||
RecordCountChecker();
|
|
||||||
|
//최신 데이터 10개만 유지되도록 저장
|
||||||
|
RecordCountChecker();
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"An error occurred while saving replay data:{e.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -86,10 +93,26 @@ public class ReplayManager : Singleton<ReplayManager>
|
|||||||
{
|
{
|
||||||
List<ReplayRecord> records = new List<ReplayRecord>();
|
List<ReplayRecord> records = new List<ReplayRecord>();
|
||||||
string path = Application.persistentDataPath;
|
string path = Application.persistentDataPath;
|
||||||
var files = Directory.GetFiles(path, "*.json");
|
|
||||||
foreach (var file in files)
|
try
|
||||||
{
|
{
|
||||||
records.Add(JsonUtility.FromJson<ReplayRecord>(File.ReadAllText(file)));
|
var files = Directory.GetFiles(path, "*.json");
|
||||||
|
foreach (var file in files)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ReplayRecord record = JsonUtility.FromJson<ReplayRecord>(File.ReadAllText(file));
|
||||||
|
records.Add(record);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Replaydata cannot be converted to JSON: {e.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Replay Directory Error: {e.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return records;
|
return records;
|
||||||
@ -97,12 +120,19 @@ public class ReplayManager : Singleton<ReplayManager>
|
|||||||
|
|
||||||
private void RecordCountChecker()
|
private void RecordCountChecker()
|
||||||
{
|
{
|
||||||
string path = Application.persistentDataPath;
|
try
|
||||||
var files = Directory.GetFiles(path, "*.json");
|
{
|
||||||
if (files.Length <= 10)
|
string path = Application.persistentDataPath;
|
||||||
return;
|
var files = Directory.GetFiles(path, "*.json");
|
||||||
File.Delete(files[0]);
|
if (files.Length <= 10)
|
||||||
RecordCountChecker();
|
return;
|
||||||
|
File.Delete(files[0]);
|
||||||
|
RecordCountChecker();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Debug.LogError($"Replay Directory Error: {e.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user