Unity에서 데이터를 직렬화된 클래스로 저장할 때 클래스에 추가 변수를 추가하면 충돌이 발생할 수 있습니다. 저장된 파일의 이전 버전을 로드합니다. 이를 원활하게 처리하려면 데이터를 JSON 형식으로 변환하는 것이 좋습니다.
JsonUtility.ToJson을 사용하여 직렬화된 클래스를 JSON 문자열로 변환합니다. PlayerPrefs.SetString 또는 기타 선호하는 방법을 사용하여 이 문자열을 저장합니다. 데이터를 로드할 때 JsonUtility.FromJson을 사용하여 JSON 문자열을 클래스로 다시 변환합니다.
데이터 저장:
using UnityEngine; using System; using System.Collections.Generic; [Serializable] public class Save { public List<int> ID = new List<int>(); public List<int> Amounts = new List<int>(); public int extra = 0; public float highScore = 0; public string ToJson() { return JsonUtility.ToJson(this); } public static Save FromJson(string json) { return JsonUtility.FromJson<Save>(json); } } void Save() { Save saveData = new Save(); ... // Populate the data fields string jsonData = saveData.ToJson(); PlayerPrefs.SetString("MySettings", jsonData); PlayerPrefs.Save(); }
로드 데이터:
void Load() { string jsonData = PlayerPrefs.GetString("MySettings"); Save loadedData = Save.FromJson(jsonData); ... // Use the loaded data }
위 내용은 직렬화 가능 클래스에 대한 변경 사항을 처리하면서 Unity에서 데이터를 안전하게 저장하고 로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!