#c# #unity3d
#c# #unity3d
Вопрос:
У меня есть игровой персонаж со спрайтом A. Когда я обновляю этого персонажа, я хочу изменить спрайт на спрайт B и сохранить его, чтобы при выходе из игры и повторном запуске персонаж теперь был спрайтом B. В настоящее время я могу изменить спрайт с A на B, но когда я выхожу и играю снова, он показывает спрайт Aвместо B
Ответ №1:
Назначьте спрайты вашего игрока в список спрайтов, спрайт [0] для спрайта уровня 1, спрайты [1] для спрайта уровня 2 и так далее. Затем установите спрайт вашего SpriteRenderer на спрайт в списке в соответствии с сохраненным уровнем.
[SerializeField] List<Sprite> sprites;
[SerializeField] SpriteRenderer m_SpriteRenderer;
int currentLevel;
private void Start()
{
currentLevel = PlayerPrefs.GetInt("PlayerLevel", 1); //load player level
LoadCurrentSprite();
}
void LoadCurrentSprite()
{
m_SpriteRenderer.sprite = sprites[currentLevel - 1];
}
Когда вы меняете уровень персонажа, вызывайте это
void SetPlayerLevel(int level)
{
currentLevel = level;
PlayerPrefs.SetInt("PlayerLevel", level);
LoadCurrentSprite();
}