이 글은 전 유니티 공부 글과 이어집니다!!
전 글
이제 게임 이내에서 저장 기능을 구현할 수 있다.
public void GameSave()
{
Debug.Log("저장");
PlayerPrefs.SetFloat("PlayerX", player.transform.position.x);
PlayerPrefs.SetFloat("PlayerY", player.transform.position.y);
PlayerPrefs.SetInt("QuestId", questManager.questId);
PlayerPrefs.SetInt("QuestActionId", questManager.questActionIndex);
PlayerPrefs.Save();
menuSet.SetActive(false);
//player.x,
//player.y
//Quest Id
//Quest Action Index
}
public void GameLoad()
{
if (!PlayerPrefs.HasKey("PlayerX"))
return;
float x = PlayerPrefs.GetFloat("PlayerX");
float y = PlayerPrefs.GetFloat("PlayerY");
int questId = PlayerPrefs.GetInt("QuestId");
int questActionIndex = PlayerPrefs.GetInt("QuestActionId");
player.transform.position = new Vector3(x, y, 0);
questManager.questId = questId;
questManager.questActionIndex = questActionIndex;
}
저장하기 버튼을 눌렀을 때 GameSave
함수가 실행 된다.
여기서 레지스트리 편집기를 실행하면
요래요래 내가 지정한 회사이름과 게임이름으로 저장공간이 생기게 된다.
위치:컴퓨터\HKEY_CURRENT_USER\SOFTWARE\StingrayStudio\TopDown2DRPG
들어가 보면
한번 저장 한 뒤엔
이렇게 내가 set한 것들이 모두 들어가 있다.
여기서 Start 함수에서 게임을 다시 시작할때 저장했던 것들을 GameLoad
함수로 불러 내는데, 맨 처음 시작했을 때는 저장된 값이 없기 때문에
함수에다
if (!PlayerPrefs.HasKey("PlayerX"))
return;
값이 없을 때는 return!