EcoQuest/Assets/Script/LevelSelector.cs

58 lines
1.9 KiB
C#

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class LevelSelector : MonoBehaviour
{
// Array Button level (1-6). Assign di Inspector sesuai urutan level.
public Button[] levelButtons;
// Sprite untuk kondisi "unlocked" (tiap level punya sprite berbeda).
// Misalnya unlockedSprites[0] untuk level 1, unlockedSprites[1] untuk level 2, dst.
public Sprite[] unlockedSprites;
// Sprite untuk kondisi "locked" (bisa satu sprite yang sama untuk semua level).
public Sprite lockedSprite;
private void Start()
{
// Ambil info level tertinggi yang sudah terbuka, default = 1
int maxLevelUnlocked = PlayerPrefs.GetInt("maxLevelUnlocked", 1);
// Atur setiap tombol level
for (int i = 0; i < levelButtons.Length; i++)
{
int levelNumber = i + 1; // karena index mulai dari 0, level mulai dari 1
if (levelNumber <= maxLevelUnlocked)
{
// Level ini unlocked
levelButtons[i].image.sprite = unlockedSprites[i]; // sprite unlocked
levelButtons[i].interactable = true;
}
else
{
// Level ini masih locked
levelButtons[i].image.sprite = lockedSprite; // sprite lock
levelButtons[i].interactable = false;
}
}
}
// Fungsi untuk dipanggil oleh OnClick tiap tombol level
public void SelectLevel(int level)
{
// Pastikan level ini tidak melebihi maxLevelUnlocked
int maxLevelUnlocked = PlayerPrefs.GetInt("maxLevelUnlocked", 1);
if (level <= maxLevelUnlocked)
{
PlayerPrefs.SetInt("selectedLevel", level);
SceneManager.LoadScene("Quest2 2"); // Ganti dengan nama scene quest Anda
}
else
{
Debug.Log("Level " + level + " masih terkunci!");
}
}
}