일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- unity게임
- 스파르타
- c#코딩기초트레이닝
- 유니티서바이벌게임만들기
- c#기본문법
- C#문법
- c#문제
- 유니티게임만들기
- unity3d
- 스파르타코딩클럽
- unity게임만들기
- 유니티
- c#프로그래머스기초문법
- 시샵문법
- unity공부
- c#
- Unity
- c# 백준
- 티스토리챌린지
- 유니티상호작용
- 오블완
- 유니티공부
- unity3dservival
- c#코테
- Console.WriteLine
- unity3d게임만들기
- 유니티3dui
- c#기초문법
- c# c#프로그래머스
- 시샵
- Today
- Total
나 개발자 진짜 되냐?
[ 1月 6日 ] 오늘 내가 배운 것 _ 76日次 _ SaveManager을 만들어요 본문
오늘은 팀원분들과 날밤을 새기로 했다.
ㅋㅋㅋㅋㅋㅋ
왜냐면 내일
목표했던 최종빌드를 마무리 짓기 위해서이다.
이번주 목요일에 유저테스트를 받기 위해
오늘 밤새 열심히 달리려고 한다.
나는 일단 SaveManager을 끝냈다.
끝낸 거 같은데..
뭔가 뭔가 하나 빈 거 같은데
기분 탓일지도,
쉽지 않았던 시간이었다.
SaveData와 SaveManager에 대해 이야기해보자!
먼저
저장할 데이터들을 모아둔 클래스를 하나 만들었다.
< UserData.cs >
유저의 정보를 저장해 주었다.
< SaveData.cs >
그리고 saveData를 만들어 주었다.
여기에는 우리가 json으로 저장해 주기 위해 틀을 만들어주는 부분이다.
< SaveManager.cs >
여기서 우리는 json으로 변환하고 로드해 주는 과정을 적어 둘 것이다.
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public class SaveManager : Singleton<SaveManager>
{
private string saveFilePath; // 저장 파일 경로
protected override void Awake()
{
base.Awake();
// 저장 파일 경로 설정 (플랫폼에 따라 다르게 설정 가능)
saveFilePath = Application.persistentDataPath + "/saveData.json";
}
public void SaveGame(SaveData data)
{
// SaveData를 JSON 형식으로 변환
string json = JsonUtility.ToJson(data, true);
// JSON을 파일에 저장
File.WriteAllText(saveFilePath, json);
Debug.Log($"Game Saved! Path: {saveFilePath}");
}
public SaveData LoadGame()
{
// 저장 파일이 존재하지 않으면 null 반환
if (!File.Exists(saveFilePath))
{
Debug.LogWarning("Save file not found!");
return null;
}
// 파일에서 JSON 읽기
string json = File.ReadAllText(saveFilePath);
// JSON을 SaveData 객체로 변환
SaveData data = JsonUtility.FromJson<SaveData>(json);
Debug.Log($"Game Loaded!");
return data;
}
public void DeleteSave()
{
if (File.Exists(saveFilePath))
{
File.Delete(saveFilePath);
Debug.Log("Save file deleted.");
}
}
}
save에서는 json파일을 저장할 수 있게 해 준다.
load에서는 json파일을 불러올 수 있게 해 준다.
다음에 이렇게 save, load 해준 것을
게임매니저에서
json파일을 가져와서 유니티에 load 해주게 된다.
선언
초기화
여기 SaveGame으로 이제 진짜 저장이 됩니다.
Load도 해줍니다.
이렇게 해주면
우리는 이제
GameManager.Instance.LoadGame()으로 데이터를 가져올 수 있다.
이렇게 이름을 가져올 수 있다.
버튼을 누르거나 함수가 실행될 때
게임매니저의 싱글톤으로 SaveGame로 가져오면
저장도 가능하다.
이렇게 해서 저장기능을 만들어보았다.
아직 부족한 부분이 있긴 한데..
오늘은 UI수정을 우선적으로 하려고 한다..ㅎ
'오늘 공부를 정리해봐요!' 카테고리의 다른 글
[ 1月 7日 ] 오늘 내가 배운 것 _ 77日次 _ SaveManager을 수정해요 (1) | 2025.01.07 |
---|---|
[ 1月 2日 ] 오늘 내가 배운 것 _ 75日次 _ 1월 시작 (1) | 2025.01.05 |
[ 1月 2日 ] 오늘 내가 배운 것 _ 75日次 _ 2025의 시작 (1) | 2025.01.02 |
[ 12月 30日 ] 오늘 내가 배운 것 _ 73日次 _ 컴투스, 딱 대 (3) | 2024.12.30 |
[ 12月 26日 ] 오늘 내가 배운 것 _ 71日次 _ 크리스마스 다음날도 사운드매니저를! (1) | 2024.12.26 |