- Home /
 
How I do load scene by Singleton Patten Score and Countdown Timer in Unity # C
I am having a problem loading a scene by Countdown timer and Score . The score script is in singleton pattern . I also have two ui text in the scene . I want the scene to change if the countdown reach zero and the score have to be below number I have set on the Game script . If the score is above the number I have is set for on the game script and timer reaches zero then the scene don't change. I don't have any errors . I don't know what to do from here. I change the operators around in the game script . I still could get the scenes to change. I am accessing the score script and the countdown timer script from the game script. Here are my scripts :
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Game : MonoBehaviour {
private MyClockScript myClock; void Start () { myClock = GetComponent(); }
 // Update is called once per frame
 void Update () {
  if (myClock.m_leftTime < 0 || GameManagerSingleton.score > 0)
        {
            SceneManager.LoadScene("ui");
        }
 }
 
               }
using UnityEngine; using System.Collections; using UnityEngine.UI; public class MyClockScript : MonoBehaviour { public int Minutes = 0; public int Seconds = 0;
   private Text    m_text;
   public float   m_leftTime;
  
   private void Awake()
   {
       m_text = GetComponent<Text>();
       m_leftTime = GetInitialTime();
   }
  
   public void Update()
   {
       if (m_leftTime > 0f)
       {
           //  Update countdown clock
           m_leftTime -= Time.deltaTime;
           Minutes = GetLeftMinutes();
           Seconds = GetLeftSeconds();
  
           //  Show current clock
           if (m_leftTime > 0f)
           {
               m_text.text = "Time : " + Minutes + ":" + Seconds.ToString("00");
           }
           else
           {
               //  The countdown clock has finished
               m_text.text = "Time : 0:00";
           }
       }
   }
  
   private float GetInitialTime()
   {
       return Minutes * 60f + Seconds;
   }
  
   private int GetLeftMinutes()
   {
       return Mathf.FloorToInt(m_leftTime / 60f);
   }
  
   private int GetLeftSeconds()
   {
       return Mathf.FloorToInt(m_leftTime % 60f);
   }
 
               }
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class GameManagerSingleton : MonoBehaviour { public static GameManagerSingleton instance = null;
  public static int score;
  
  private Text text;
  
  void Awake()
  {
      text = GetComponent <Text> ();
      score = 0;
      if (instance != null && instance != this)
          Destroy(gameObject);    // Ensures that there aren't multiple Singletons
 
      instance = this;
  }
  
  void Update()
  {
     text.text = "Score: " + score;
      Debug.Log("Score: " + score);
  }
 
 
 
               }
Your answer