Место общения программистов C#
Anonymous
Непонятно, где в коде ошибка [закрыто]
Сообщение
Anonymous » 02 июн 2024, 20:00
На этапе достижений у меня есть два достижения, когда я набираю 10 очков и получаю первое достижение, второе достижение я больше не могу получить, когда набираю 100 очков. Но если я сначала наберу 100 очков, то смогу получить 1 и 2 достижения.
Код: Выделить всё
public class Achivments : MonoBehaviour
{
private KindsAchivments kindsAch = new KindsAchivments();
public int moneyTotal, money;
public Text moneyTotalWithdrawal;
[SerializeField] private Button[] achivmentsButton;
[SerializeField] private bool[] isTakenAchivments;
[SerializeField] private int[] purpore;
private void Start()
{
UploadingData();
}
private void Update()
{
moneyTotalWithdrawal.text = moneyTotal.ToString();
}
private void UploadingData ()
{
money = PlayerPrefs.GetInt("money");
moneyTotal = PlayerPrefs.GetInt("moneyTotal");
for (int i = 0; i < isTakenAchivments.Length; i++)
{
isTakenAchivments[i] = PlayerPrefs.GetInt("isTakenAchivments", isTakenAchivments[i] ? 1 : 0) == 1 ? true : false;
}
for (int i = 0; i < purpore.Length; i++)
{
if (moneyTotal >= purpore[i] && !isTakenAchivments[i])
{
achivmentsButton[i].interactable = true;
}
else
{
achivmentsButton[i].interactable = false;
}
}
}
public void ToTakeAchivments(int numberAchivment)
{
achivmentsButton[numberAchivment].interactable = false;
money += kindsAch.award[numberAchivment];
moneyTotal += kindsAch.award[numberAchivment];
isTakenAchivments[numberAchivment] = true;
PlayerPrefs.SetInt("money", money);
PlayerPrefs.SetInt("moneyTotal", moneyTotal);
PlayerPrefs.SetInt("isTakenAchivments", isTakenAchivments[numberAchivment] ? 1 : 0);
}
}
class KindsAchivments
{
public List award = new List();
public KindsAchivments()
{
award.Add(10);
award.Add(100);
}
}
Ничего не пробовал, потому что не знаю, ожидаю нормальный набор достижений
Подробнее здесь:
https://stackoverflow.com/questions/785 ... n-the-code
1717347613
Anonymous
На этапе достижений у меня есть два достижения, когда я набираю 10 очков и получаю первое достижение, второе достижение я больше не могу получить, когда набираю 100 очков. Но если я сначала наберу 100 очков, то смогу получить 1 и 2 достижения. [code] public class Achivments : MonoBehaviour { private KindsAchivments kindsAch = new KindsAchivments(); public int moneyTotal, money; public Text moneyTotalWithdrawal; [SerializeField] private Button[] achivmentsButton; [SerializeField] private bool[] isTakenAchivments; [SerializeField] private int[] purpore; private void Start() { UploadingData(); } private void Update() { moneyTotalWithdrawal.text = moneyTotal.ToString(); } private void UploadingData () { money = PlayerPrefs.GetInt("money"); moneyTotal = PlayerPrefs.GetInt("moneyTotal"); for (int i = 0; i < isTakenAchivments.Length; i++) { isTakenAchivments[i] = PlayerPrefs.GetInt("isTakenAchivments", isTakenAchivments[i] ? 1 : 0) == 1 ? true : false; } for (int i = 0; i < purpore.Length; i++) { if (moneyTotal >= purpore[i] && !isTakenAchivments[i]) { achivmentsButton[i].interactable = true; } else { achivmentsButton[i].interactable = false; } } } public void ToTakeAchivments(int numberAchivment) { achivmentsButton[numberAchivment].interactable = false; money += kindsAch.award[numberAchivment]; moneyTotal += kindsAch.award[numberAchivment]; isTakenAchivments[numberAchivment] = true; PlayerPrefs.SetInt("money", money); PlayerPrefs.SetInt("moneyTotal", moneyTotal); PlayerPrefs.SetInt("isTakenAchivments", isTakenAchivments[numberAchivment] ? 1 : 0); } } class KindsAchivments { public List award = new List(); public KindsAchivments() { award.Add(10); award.Add(100); } } [/code] Ничего не пробовал, потому что не знаю, ожидаю нормальный набор достижений Подробнее здесь: [url]https://stackoverflow.com/questions/78566692/it-is-not-clear-where-the-error-is-in-the-code[/url]