Here’s the code:
using UnityEngine;
using System.Collections;
using System;
public class Finish : MonoBehaviour {
private Player bike;
private CountDownTimer countDownTimer;
public bool finished = false;
private int episode;
private int currentLevel;
public int stars;
private int getUnlock;
public int starsLevel;
private LevelButtons level;
void Awake() {
stars = 0;
starsLevel = PlayerPrefs.GetInt("Episode:" +episode +"Level:"+currentLevel +"Stars:");
print("STARS COLLECTED ALREADY: " + starsLevel);
bike = GameObject.Find("PlayerBike").GetComponent<Player>();
countDownTimer = GameObject.Find("GameScripts").GetComponent<CountDownTimer>();
if (GameControl.control.episode1 == true)
{
episode = 1;
}
currentLevel = LevelButtons.levelControl.highestLevel + 1;
// Check if level was finished before, and don't unlock new level if it was.
getUnlock = PlayerPrefs.GetInt("Episode:" +episode +"Level:"+currentLevel +"Finished:");
print(getUnlock);
}
IEnumerator OnTriggerExit2D(Collider2D finish) {
if (finish.gameObject.tag == "Player" finished == false)
{
finished = true;
if (finished == true){
countDownTimer.StartTheTimer = false;
bike.playerDisable = true;
if (stars > starsLevel){
PlayerPrefs.SetInt("Episode:" +episode +"Level:"+currentLevel +"Stars:",stars);
print("STARS COLLECTED: " + stars);
}
// Unlock new level if the level is finished for the first time.
if (bike.StarsCollected > 0 getUnlock == 0){
// Unlock en ny level.
//PlayerPrefs.SetInt("Episode:" +episode +"Level:"+currentLevel,1);
// Legg antall stjerner i en PlayerPref.
PlayerPrefs.SetInt("Episode:" +episode +"Level:"+currentLevel +"Stars:",stars);
PlayerPrefs.SetInt("Episode:" +episode +"Level:"+currentLevel +"Finished:",1);
print("LEVEL UNLOCKED!!");
}
yield return new WaitForSeconds(1);
Application.LoadLevel("epLevels1");
}
}
}
void Update () {
stars = bike.StarsCollected;
}
My problem is this:
PlayerPrefs.SetInt("Episode:" +episode +"Level:"+currentLevel +"Stars:",stars);
won’t save!
So everytime I read the starsLevel = PlayerPrefs.GetInt("Episode:" +episode +"Level:"+currentLevel +"Stars:");
it is always equal to 0.
why?
:?