유니티 데이터 저장(PlayerPrefs)

Intro

데이터 저장(PlayerPrefs)

PlayerPrefs

PlayerPrefs는 유니티에서 제공하는 클래스로 간단한 데이터를 저장할 수 있다.

DataManager

public class DataManager : MonoBehaviour

{
    public static DataManager instance
    {
        get
        {
            
            if (m_instance == null)
            {          
                m_instance = FindObjectOfType<DataManager>();
            }
            return m_instance;
        }
    }

    private static DataManager m_instance; 
    
    
    public long crystal
    {
        get
        {
            if (!PlayerPrefs.HasKey("Crystal")) // 키 값이 없을때 기본 값 0 리턴
            {
                return 0;
            }
            return long.Parse(PlayerPrefs.GetString("Crystal"));
        }
        set
        {
            PlayerPrefs.SetString("Crystal", value.ToString());
            
        }
    }

데이터를 관리하는 DataManger 클래스를 만들고 싱글턴으로 만들어주었다.

게임에 사용될 화폐인 crystal을 프로퍼티를 이용해 읽거나 쓸수있게 했으며 PlayerPrefs를 이용해 Crystal이라는 Key에 데이터를 저장하도록 했다. 이때 PlayerPrefsfloat, int, string 만 저장할 수 있으므로 long타입인 crystal은 저장할 때는 string형으로 불러올 땐 string형을 long으로 parse 하도록 했다.

데이터 변경

DataManager.instance.crystal += reward;
InGameUIManager.instance.UpdateCrystal(DataManager.instance.crystal);

몬스터가 죽을 때 crystal의 수치를 증가하도록 했다.

UpdateCrystal(DataManager.instance.crystal);

UIManager는 저장된 데이터를 불러와 갱신시키게 했다.

실행결과

1

2

몬스터를 잡으면 크리스탈이 증가하며 게임을 껐다 켜도 저장된 값이 그대로 있다.

참고자료

태그: ,

카테고리:

업데이트:

댓글남기기