Question by 
               Ejpj123 · Jun 27, 2016 at 09:46 PM · 
                guiguilayouthighscoreshighscore  
              
 
              GUI Highscore?
Hi, I am making a 2D game and I am trying to figure out how to implement a score and leaderboard. My Score Script:
 using UnityEngine; 
 using System.Collections;
 
 public class ScoreScript : MonoBehaviour { 
 
     public int score = 0;
     public int highScore = 0;
     string highScoreKey = "HighScore";
 
     void Start(){
         //Get the highScore from player prefs if it is there, 0 otherwise.
         highScore = PlayerPrefs.GetInt(highScoreKey,0);    
     }
 
     void Update(){
         GetComponent<GUIText>().text = "Score:" + score.ToString();
     }
 
     void OnDisable(){
 
         //If our scoree is greter than highscore, set new higscore and save.
         if(score>highScore){
             PlayerPrefs.SetInt(highScoreKey, score);
             PlayerPrefs.Save();
         }
     }
 
 }
My leaderboard script:
 using UnityEngine; 
  using System.Collections;
  
  public class LeaderBoard : MonoBehaviour { 
  
  public int highScore;
  string highScoreKey = "HighScore";
  
      void Start(){
          highScore = PlayerPrefs.GetInt(highScoreKey,0);
          //use this value in whatever shows the leaderboard.
      }
  
  }
I want to add a timer that counts up on the top left of the game screen only when the player moves.
Here is my 2d character script:
 using System;
 using UnityEngine;
 using System.Collections;
 using UnityEngine.SceneManagement;
 
 // Just in case so no "duplicate definition" stuff shows up
 namespace UnityStandardAssets.Copy._2D
 {
     public class PlatformerCharacter2D : MonoBehaviour
     {
         [SerializeField] private float m_MaxSpeed = 10f;                    // The fastest the player can travel in the x axis.
         [SerializeField] private float m_JumpForce = 400f;                  // Amount of force added when the player jumps.
         [SerializeField] private bool m_AirControl = false;                 // Whether or not a player can steer while jumping;
         [SerializeField] private LayerMask m_WhatIsGround;                  // A mask determining what is ground to the character
 
         private Transform m_GroundCheck;    // A position marking where to check if the player is grounded.
         const float k_GroundedRadius = .2f; // Radius of the overlap circle to determine if grounded
         private bool m_Grounded;            // Whether or not the player is grounded.
         private Animator m_Anim;            // Reference to the player's animator component.
         private Rigidbody2D m_Rigidbody2D;
         private bool m_FacingRight = true;
         public string GameOverScene;
         // For determining which way the player is currently facing.
 
         private void Awake()
         {
             // Setting up references.
             m_GroundCheck = transform.Find("GroundCheck");
             m_Anim = GetComponent<Animator>();
             m_Rigidbody2D = GetComponent<Rigidbody2D>();
         }
 
 
         private void FixedUpdate()
         {
             m_Grounded = true;
 
             // The player is grounded if a circlecast to the groundcheck position hits anything designated as ground
             // This can be done using layers instead but Sample Assets will not overwrite your project settings.
             Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
             for (int i = 0; i < colliders.Length; i++)
             {
                 if (colliders[i].gameObject != gameObject)
                     m_Grounded = true;
             }
             m_Anim.SetBool("Ground", m_Grounded);
         }
 
 
         public void Move(float move, bool jump)
         {
             //only control the player if grounded or airControl is turned on
             if (m_Grounded || m_AirControl)
             {
                 // The Speed animator parameter is set to the absolute value of the horizontal input.
                 m_Anim.SetFloat("Speed", Mathf.Abs(move));
 
                 // Move the character
                 m_Rigidbody2D.velocity = new Vector2(move*m_MaxSpeed, m_Rigidbody2D.velocity.y);
 
                 m_MaxSpeed += 0.5f * Time.deltaTime; /////////////////////////////////////////////////////////////////////////////////
 
                 m_JumpForce += 1.0f * Time.deltaTime; ////////////////////////////////////////////////////////////////////////////////
 
                 m_Rigidbody2D.gravityScale += 0.001f * Time.deltaTime; /////////////////////////////////////////////////////////////
 
 
                 // If the input is moving the player right and the player is facing left...
                 if (move > 0 && !m_FacingRight)
                 {
                     // ... flip the player.
                     Flip();
                 }
                     // Otherwise if the input is moving the player left and the player is facing right...
                 else if (move < 0 && m_FacingRight)
                 {
                     // ... flip the player.
                     Flip();
                 }
             }
             // If the player should jump...
             if (m_Grounded && jump && m_Anim.GetBool("Ground"))
             {
                 // Add a vertical force to the player.
                 m_Grounded = false;
                 m_Anim.SetBool("Ground", false);
                 m_Rigidbody2D.AddForce(new Vector2(0f, m_JumpForce));
             }
         }
 
 
         private void Flip()
         {
             // Switch the way the player is labelled as facing.
             m_FacingRight = !m_FacingRight;
 
             // Multiply the player's x local scale by -1.
             Vector3 theScale = transform.localScale;
             theScale.x *= -1;
             transform.localScale = theScale;
         }
 
         void OnCollisionEnter2D(Collision2D target)
         {
             if (target.gameObject.tag == "Enemy") {
                 m_MaxSpeed = 0f;
                 m_JumpForce = 0f;
                 m_Rigidbody2D.gravityScale = 1f;
 
 
             }
     }
 
 
         IEnumerator DelayedSceneLoad()
         {
             yield return new WaitForSeconds(1.5f);
             SceneManager.LoadScene(GameOverScene);
 
         }
 
 
 }
 
 
 }
I want the highscore to always be on a game over scene. Here is my game over scene:

Can someone please help me? I would be grateful.
 
                 
                screen-shot-2016-06-27-at-44420-pm.png 
                (278.5 kB) 
               
 
              
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
High Score Save iOS 0 Answers
Help in changing the GUI looks! 0 Answers
Object Reference Not Set to an Instance of an Object 1 Answer
online highscore unity 5.1 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                