Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
This question was closed Mar 24, 2017 at 03:18 PM by Philosophbot for the following reason:

I managed to figure it out myself and it seemed to work best for the script I was using.

avatar image
0
Question by Philosophbot · Mar 22, 2017 at 04:13 PM · c#unity 2dscore system

How to save highscores

I am trying to make a system that will save your highscore but It does not seem to work. To do this I am trying to use variables in 2 different scripts. The problem is that my float "previous" is constantly setting it self to my float count and I only want it to set it once.

first script: using UnityEngine; using UnityEngine.UI; using System.Collections;

 public class MainScript : MonoBehaviour {
 
     public Text CountText;
     public static int count;
     public GameObject pipeObject;
     public GameObject birdObject;
     public float pipeHole;
     public static float previous;
 
     // Use this for initialization
     void Awake(){
         previous = count;
     }
 
     void Start () {
         PlayerPrefs.DeleteAll ();
         count = PlayerPrefs.GetInt ("High Score", 0);
         SetCountText ();
         Instantiate (birdObject);
         InvokeRepeating ("CreateObstacle", 0f, 1.5f);
     }
 
     void CreateObstacle(){
         float randomPos = 4f - (4f - 0.8f - pipeHole) * Random.value;
         GameObject upperPipe = Instantiate (pipeObject);
         upperPipe.transform.position = new Vector2 (4f, randomPos);
         GameObject lowerPipe = Instantiate (pipeObject);
         lowerPipe.transform.position = new Vector2 (4f, randomPos - pipeHole - 4.8f);
     }
     
     // Update is called once per frame
     void Update () {
         if (Input.GetButtonDown ("Fire1")) {
             count = count + 1;
             PlayerPrefs.SetInt ("High Score", MainScript.count);
             SetCountText ();
             print (count);
         }
     }
     void SetCountText(){
         CountText.text = "Flaps: " + MainScript.count.ToString ();
     }
 }

second script: using UnityEngine; using UnityEngine.UI; using System.Collections; using UnityEngine.SceneManagement;

public class LevelManager : MonoBehaviour {

 public Text score;
 public Text highScore;

 public void LoadLevel (string name){
     SceneManager.LoadScene (name);
 }
 // Use this for initialization
 void Start () {
 score.text = "Score:" + PlayerPrefs.GetInt ("High Score").ToString ();
     if(PlayerPrefs.GetInt("High Score") >= MainScript.previous){
         highScore.text = "highScore:" + PlayerPrefs.GetInt ("High Score").ToString ();
     }
 }
 
 // Update is called once per frame
 void Update () {
 
 }

}

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

  • Sort: 
avatar image
0
Best Answer

Answer by Philosophbot · Mar 24, 2017 at 03:17 PM

I managed to figure it out here is what I did I added a new public static int to my first script that only set itself to count when count was greater than itself. I also deleted my public static int called previous and removed it from all my code. public class MainScript : MonoBehaviour {

     public Text CountText;
     public static int count;
     public GameObject pipeObject;
     public GameObject birdObject;
     public float pipeHole;
     public static int previousCount;
 
     // Use this for initialization
     void Awake(){
         
     }
 
     void Start () {
         count = 0;
         //count = PlayerPrefs.GetInt ("High Score", 0);
         SetCountText ();
         Instantiate (birdObject);
         InvokeRepeating ("CreateObstacle", 0f, 1.5f);
     }
 
     void CreateObstacle(){
         float randomPos = 4f - (4f - 0.8f - pipeHole) * Random.value;
         GameObject upperPipe = Instantiate (pipeObject);
         upperPipe.transform.position = new Vector2 (4f, randomPos);
         GameObject lowerPipe = Instantiate (pipeObject);
         lowerPipe.transform.position = new Vector2 (4f, randomPos - pipeHole - 4.8f);
     }
     
     // Update is called once per frame
     void Update () {
         if (Input.GetButtonDown ("Fire1")) {
             count = count + 1;
             PlayerPrefs.SetInt ("High Score", MainScript.count);
             SetCountText ();
             print (count);
         }
         if (count > previousCount) {
             previousCount = count;
         }
     }
     void SetCountText(){
         CountText.text = "Flaps: " + MainScript.count.ToString ();
     }
 }

I would also like to note that I noted out 2 second line it the start function because it is a useless line of code and it is very important to delete it.

here is what I edited in my second page of code:

 public class LevelManager : MonoBehaviour {
 
     public Text score;
     public Text highScore;
 
     public void LoadLevel (string name){
         SceneManager.LoadScene (name);
     }
     // Use this for initialization
     void Start () {
         MainScript.count = 0;
         score.text = "Score:" + PlayerPrefs.GetInt ("High Score").ToString ();
         if(PlayerPrefs.GetInt("High Score") >= MainScript.count){
             highScore.text = "highScore:" + MainScript.previousCount;
         }
     }
     
     // Update is called once per frame
     void Update () {
     
     }
 }

here I replaced values in the start function

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Follow this Question

Answers Answers and Comments

327 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Double tap to reduce score by 2 points 0 Answers

I have no Idea why my highscore Script isn't working ... 0 Answers

Game progress restart / Prestige in Unity 0 Answers

I want to spawn objects probabilistically. 0 Answers

how to create a score multiplier? 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges