58 lines
1.9 KiB
C#
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!");
|
|
}
|
|
}
|
|
}
|