PlayerPrefs를 이용한 저장기능 구현

박지예·2021년 9월 14일
0

공부

목록 보기
7/42

이 글은 전 유니티 공부 글과 이어집니다!!
전 글

PlayerPrefs란

이제 게임 이내에서 저장 기능을 구현할 수 있다.

전체 코드!

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!

profile
언젠간 바다로 갈거야!🐋

0개의 댓글