starOfWords/Assets/Scripts/2.0/ResultScene_Galaxy.cs

101 lines
2.7 KiB
C#
Raw Permalink Normal View History

using UnityEngine;
using UnityEngine.UI;
using TMPro;
using UnityEngine.SceneManagement;
public class ResultScene_Galaxy : MonoBehaviour
{
[Header("RESULT TEXTS")]
public TMP_Text scoreText;
public TMP_Text correctText;
public TMP_Text wrongText;
public TMP_Text statusText;
[Header("BUTTONS")]
public Button retryButton;
public Button mainMenuButton;
[Header("SCENES (Inspector'dan gir)")]
public string retrySceneName = "GalaxyGameScene_Level"; // tekrar oyna -> oyun sahnesi
public string mainMenuScene = "Anamen";
[Header("SUCCESS THRESHOLD")]
public int successScoreThreshold = 2000;
[Header("AUDIO")]
public AudioSource audioSource;
public AudioClip clickSound;
private int score;
private int correct;
private int wrong;
void Start()
{
score = PlayerPrefs.GetInt("Mod3Score", 0);
correct = PlayerPrefs.GetInt("Mod3Correct", 0);
wrong = PlayerPrefs.GetInt("Mod3Wrong", 0);
if (scoreText != null) scoreText.text = score.ToString();
if (correctText != null) correctText.text = correct.ToString();
if (wrongText != null) wrongText.text = wrong.ToString();
if (statusText != null)
{
if (score >= successScoreThreshold)
{
statusText.text = "LEVEL PASSED";
statusText.color = Color.green;
}
else
{
statusText.text = "FAILED";
statusText.color = Color.red;
}
}
if (retryButton != null)
{
retryButton.onClick.RemoveAllListeners();
retryButton.onClick.AddListener(() =>
{
PlayClick();
LoadScene(retrySceneName);
});
}
if (mainMenuButton != null)
{
mainMenuButton.onClick.RemoveAllListeners();
mainMenuButton.onClick.AddListener(() =>
{
PlayClick();
LoadScene(mainMenuScene);
});
}
}
void LoadScene(string sceneName)
{
if (string.IsNullOrWhiteSpace(sceneName))
{
Debug.LogError("ResultScene: Sahne adı boş! Inspector'dan doldur.");
return;
}
if (!Application.CanStreamedLevelBeLoaded(sceneName))
{
Debug.LogError("ResultScene: '" + sceneName +
"' sahnesi Build Settings'te yok ya da adı yanlış!");
return;
}
SceneManager.LoadScene(sceneName);
}
void PlayClick()
{
if (audioSource && clickSound)
audioSource.PlayOneShot(clickSound);
}
}