Как дополнить скрипт для запоминания количества кристаллов?
Я написал код для сбора кристаллов:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CrystallCollect : MonoBehaviour
{
public static int crystallCount;
private Text crystallConter;
void Start()
{
crystallConter = GetComponent<Text>();
crystallCount = 0;
}
void Update()
{
crystallConter.text = "" + crystallCount;
}
}
После чего на персонажа добавил:
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag.Equals("Crystall"))
{
CrystallCollect.crystallCount += 1;
Destroy(collision.gameObject);
}
}
Как дополнить скрипт для запоминания количества кристаллов? Заранее спасибо
Ответы (2 шт):
Автор решения: Noname guy
→ Ссылка
Добавьте метод для снятия кристаллов со счета (например для покупки или в качестве штрафа за смерть), сделайте Text crystallConter public, чтобы можно было из Unity перетаскивать объекты
public class CrystallCollect : MonoBehaviour
{
public static int crystallCount;
public Text crystallConter;
public int DeathWithdrawAmount = 10;//количество снятых кристаллов при смерти
void Start()
{
crystallConter = GetComponent<Text>();
crystallCount = 0;
}
public void Withdraw(int amount) //для снятия со счета
{
crystallCount -= amount
}
public void DeathPenalty() //вызывайте в скрипте персонажа при смерти
{
crystallCount -= DeathWithdrawAmount;
}
void Update()
{
crystallConter.text = "" + crystallCount;
}
}
Автор решения: AC Studio
→ Ссылка
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag.Equals("Crystall"))
{
CrystallCollect.crystallCount += 1;
//Сохранение CrystallCollect.crystallCount
PlayerPrefs.SetFloat ("Crystall",CrystallCollect.crystallCount );
Destroy(collision.gameObject);
}
}
чтобы получить сохранённое сохранение нужно вставить куда то этот код в Start или куда нибудь на ваше усмотрение
void Start()
{
crystallCount = PlayerPrefs.GetFloat ("Crystall", 0);
}