내 게임에서 점수 직렬화에 이상한 문제가 발생했습니다.
LevelHighScore 클래스가 있습니다.
[System.Serializable]
public class LevelHighScores
{
readonly Dictionary<Level, ModeScores> scores;
// clipped out the rest for simplicity
}
열거 형 키를 사용하면 Level
.
최근에 게임에 몇 가지 새로운 수준을 추가했지만 열거 형 끝에 새 수준을 추가하는 대신 알파벳순으로 새 열거 형을 추가했습니다. 이제 게임을로드 할 때 새 레벨에 기존 점수가 연결되어 있으므로 열거 형의 서 수가 직렬화 / 역 직렬화에 영향을 미치고 있다고 생각합니다.
앞으로 레벨을 추가 할 때이 문제를 피하고 싶습니다. 또한 열거 형 끝에 레벨 만 추가하는 것을 기억하고 싶지 않습니다.
새 값을 소급하여 추가하는 경우에도 열거 형이 일관되게 역 직렬화되도록하는 방법이 있습니까?
결국 dbc의 제안 에 따라 열거 형에 명시적인 값을 추가했습니다.
그래서 저는 레벨을
public enum Level
{
Aquarium,
Crescendo,
HungarianDance,
MapleLeafRag,
}
에
// NOTE: the numbers here don't represent order,
// they are just to ensure proper serialization
public enum Level
{
AmazingPlan = 4, // new level
Aquarium = 0,
Crescendo = 1,
HungarianDance = 2,
MapleLeafRag = 3,
}
Unity가 아닌 프로젝트의 경우 Scott Hannen의 대답 이 아마도 갈 길이 라고 생각하지만 이것은 내 문제에 대한 좋은 간단한 해결책이었습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다