I want to save sprites from my Players spriteRenderer in order to display it later on my Main Menu when the Player resumes the game.
I wrote this class (to regroup data) :
Code: Select all
public enum PlayerCharacter { PLAYER1, PLAYER2, PLAYER3 }
public class MainMenuPlayerInfo
{
public PlayerCharacter Player;
public Sprite PlayerSprite;
public MainMenuPlayerInfo()
{
Player = PlayerCharacter.PLAYER1;
PlayerSprite = null;
}
public MainMenuPlayerInfo(PlayerCharacter player, Sprite playerSprite)
{
Player = player;
PlayerSprite = playerSprite;
}
}
Code: Select all
GameObject Player = GameObject.FindWithTag("Player");
Queue<MainMenuPlayerInfo> playersInfoQueue = new Queue<MainMenuPlayerInfo>();
playersInfoQueue.Enqueue(new MainMenuPlayerInfo(PlayerCharacter.PLAYER1, Player.GetComponent<SpriteRenderer>().sprite));
saveFile.Save<Queue<MainMenuPlayerInfo>>("MainMenuPlayerInfoQueue", playersInfoQueue);
Code: Select all
Queue<MainMenuPlayerInfo> playersInfos = currentSaveFile.Load<Queue<MainMenuPlayerInfo>>("MainMenuPlayerInfoQueue");
"Reference for UnityEngine.Sprite with ID 1018448855446032586 could not be found in Easy Save's reference manager. Try pressing the Refresh References button on the ES3ReferenceMgr Component of the Easy Save 3 Manager in your scene. If you are loading objects dynamically, this warning is expected and can be ignored."
I'm using Unity 2019.4.8f1 and Easy Save 3.3.2f1.