@piffo

Меню уровней в игре?

Есть меню уровней. При нажатии на кнопку уровня, тебя переносит на сам уровень. Идея заключается в том, что все кнопки уровней изначально серые и только когда игрок уже побывал уже на самом уровне тогда кнопка становится белой. Название кнопки в редакторе, это номер самого уровня, то есть уровень 1, название кнопки 1. Есть PlayerPrefs int, называется levelNum она равняется последнему уровню на котором побывал игрок. Написал вот такой скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class jump : MonoBehaviour
{
    public Text puk;//текст который должен становится белым
    static bool bol = false;//статическая булевая что бы если levelNum уже не равняется названию кнопки, кнопка оставалась белой

    private void Awake()
    {
        string name = this.gameObject.name;
        int num;
        int.TryParse(name, out num);//конвертируем название кнопки из string в int

        if (num == PlayerPrefs.GetInt("levelNum"))
        {
            bol = true;
        }
        if (bol)
        {
            puk.color = Color.white;
        }
    }
}

Такой скрипт весит на каждой кнопке. Всё работает, но есть одна проблема. Если мы добрались до одного уровня, то белыми становятся все цифры. Я понял то что это происходит из за того что один скрипт весит на всех кнопках. Как это можно исправить? Не писать же для 40 кнопок сорок скриптов)
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы