2013년 11월 22일 금요일

Unity_PlayerPref 에 Class , Sturct형 Data 저장하기

 이번에 게임 제작진행중 Setting값을 PlayerPref를 활용해 저장할 방법을 궁리하던중 찾아낸방법.

// String<->Binary format 변환시 필요한 아이
using System.Runtime.Serialization.Formatters.Binary


//class property
private SettingInfo _setValue = new SettingInfo();

//PlayerPref에 저장할 Struct SettingInfo

[Serializable]
public struct SettingInfo{
    public bool Vibration;
    public bool Sound;
    public int Volume;
    public bool BGM;
}




// is Save
public void Save() {
        var b = new BinaryFormatter();
        var m = new MemoryStream();
        b.Serialize(m , _setValue);
        PlayerPrefs.SetString("Setting",Convert.ToBase64String(m.GetBuffer()))
    }


// is load
public void Load() {
        var data = PlayerPrefs.GetString("Setting");
        if(!string.IsNullOrEmpty(data)) {
            var b = new BinaryFormatter();
            var m = new MemoryStream(Convert.FromBase64String(data));
            _setValue = (SettingInfo) b.Deserialize(m);
                        
        } else {
                 // load data is empty
        }
    }
Categories:

0 개의 댓글:

댓글 쓰기