Я пытаюсь сохранить некоторые переменные при смене сцены (жизни и драгоценных камнях).Сохранять переменные между сценами с DontDestroyOnLoad не работает
С DontDestroyOnLoad
объект не уничтожает, но переменные делают, и сбрасывают до 5 жизней и 0 камней.
Вот мой код
GameControlle
void Start()
{
GameObject keeper = GameObject.Find ("VARKEEPER");
varkeeper = keeper.GetComponent<KeepVars>();
}
void Update()
{
LiveChecker();
}
void LiveChecker()
{
if (lives == 5) {
lives1.enabled = true;
lives2.enabled = true;
lives3.enabled = true;
lives4.enabled = true;
lives5.enabled = true;
} else if (lives == 4) {
lives1.enabled = true;
lives2.enabled = true;
lives3.enabled = true;
lives4.enabled = true;
lives5.enabled = false;
} else if (lives == 3) {
lives1.enabled = true;
lives2.enabled = true;
lives3.enabled = true;
lives4.enabled = false;
lives5.enabled = false;
} else if (lives == 2) {
lives1.enabled = true;
lives2.enabled = true;
lives3.enabled = false;
lives4.enabled = false;
lives5.enabled = false;
} else if (lives == 1) {
lives1.enabled = true;
lives2.enabled = false;
lives3.enabled = false;
lives4.enabled = false;
lives5.enabled = false;
} else if (lives <= 0) {
lives1.enabled = false;
lives2.enabled = false;
lives3.enabled = false;
lives4.enabled = false;
lives5.enabled = false;
}
}
VarKeeper
public int lives;
public int gems;
GameControlle gameController;
// Use this for initialization
void Awake()
{
DontDestroyOnLoad (this);
}
void Start()
{
GameObject player = GameObject.Find ("Character");
gameController = player.GetComponent<GameControlle>();
}
// Update is called once per frame
void Update() {
lives = gameController.lives;
gems = gameController.gems;
}
Система Я использую, чтобы получить ВАР не может быть правильный один ..
Где вы устанавливаете значения (5 и 0)? Я подозреваю, что 'lives = gameController.lives' (и тот, что для драгоценных камней) возвращает их к этому, и на самом деле это не проблема с' DontDestroyOnLoad'. –
На стороне: предлагаю изменить систему обновления вашей жизни. Не выполняйте все эти утверждения if. Огоньте некоторое обновление, когда вы на самом деле меняете жизнь. –
Или, по крайней мере, не каждый «Update()» - это то, что я имею в виду. –