I'm create a script to management all saves. Also create unique keys using a prefix with SCENE BUILD INDEX + NAME for save this data about each level.
I'm using the position of gameobjects to save in the list. I not found some kind of ID unchanged and unique for get gameobjects. This aproch is wrong?
Code: Select all
private void Awake()
{
COLLECTED_COINS = $"{_sceneIndex}_COLLECTED_COINS";
ENEMIES_KILLED = $"{_sceneIndex}_ENEMIES_KILLED";
_collectedCoins = ES3.Load(COLLECTED_COINS, _collectedCoins);
_enemiesKilled = ES3.Load(ENEMIES_KILLED, _enemiesKilled);
}
public void NewCoinCollected (Vector3 position)
{
_collectedCoins.Add(position);
}
public bool FindCoinByPosition(Vector3 position)
{
return _collectedCoins.Exists(coin => Equals(coin, position));
}
public void EnemyKilled (Vector3 position)
{
_enemiesKilled.Add(position);
}
public bool FindEnemyByPosition(Vector3 position)
{
return _enemiesKilled.Exists(enemy => Equals(enemy, position));
}
public void SaveGameFromCheckpoint ()
{
ES3.Save(COLLECTED_COINS, _collectedCoins);
ES3.Save(ENEMIES_KILLED, _enemiesKilled);
}
Code: Select all
if (SaveController.Instance.FindCoinByPosition(transform.position))
Destroy(gameObject);