установить высокий балл по счету и показать его в игре unity2D

У меня есть счет в моей игре, который увеличивается в определенные моменты! это работает нормально, но я хочу сохранить высокий балл и не знаю, как реализовать playerprefs, так как я все еще разбираюсь с единством и С#! до сих пор я разместил текстовый элемент пользовательского интерфейса на своем холсте, и он называется High Score: 0, я хотел бы, чтобы 0 удерживал и сохранял высокий балл! рабочая оценка, которая увеличивается в данный момент, находится в методе обновления. РЕДАКТИРОВАТЬ, просто чтобы указать, что это не дубликат ссылки, размещенной ниже! оба ищут разные ответы на вопрос, который кажется похожим, но не

public class Player : MonoBehaviour {

public string currentColor;

public float jumpForce = 10f;

public Rigidbody2D circle;
public SpriteRenderer sr;

public Color blue;
public Color yellow;
public Color pink;
public Color purple;

public static int score = 0;
public Text scoreText;


public GameObject obsticle;
public GameObject colorChanger;

void Start () {

    setRandomColor ();
    circle.isKinematic = true;

}

// Update is called once per frame
void Update () {

        if (Input.GetButtonDown ("Jump") || Input.GetMouseButtonDown (0)) 

        {
        circle.isKinematic = false;
            circle.velocity = Vector2.up * jumpForce;
        }

    scoreText.text = score.ToString ();

}

private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.tag == "Scored") 
    {
        score++;
        Destroy (collision.gameObject);
        Instantiate (obsticle, new Vector2(transform.position.x,transform.position.y + 7f), transform.rotation);
        return;
    }

    if (collision.tag == "ColorChanger") 
    {
        setRandomColor ();
        Destroy (collision.gameObject);
        Instantiate(colorChanger, new Vector2(transform.position.x,transform.position.y + 7f), transform.rotation);
        return;
    }

    if (collision.tag != currentColor) {
        Debug.Log ("You Died");
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
        score = 0;
    }

    if (collision.tag == "Floor") 
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}

void setRandomColor()
{
    int rand = Random.Range (0, 4);

    switch (rand) 
    {
    case 0:
        currentColor = "Blue";
        sr.color = blue;
        break;

    case 1:
        currentColor = "Yellow";
        sr.color = yellow;
        break;

    case 2:
        currentColor = "Pink";
        sr.color = pink;
        break;

    case 3:
        currentColor = "Purple";
        sr.color = purple;
        break;
    }
}

}


person David Marsh    schedule 05.09.2017    source источник
comment
Возможный дубликат Сохранение HighScore в Unity C#   -  person Hellium    schedule 05.09.2017
comment
не дубликат! ссылка, по которой вы публикуете вопрос, касается всплывающих сообщений о рекордах! не то, что я хочу   -  person David Marsh    schedule 05.09.2017
comment
у тебя должно быть плохой день   -  person David Marsh    schedule 05.09.2017
comment
Просто посмотрите на ответы, данные в связанном посте. У вас будут примеры того, как хранить и получать рекорды с помощью PlayerPrefs....   -  person Hellium    schedule 05.09.2017
comment
хорошо, просто подумал, что переполнение стека - это место для помощи и поиска ответов! зачем уводить меня отсюда! разве это не то, для чего нужно переполнение стека?   -  person David Marsh    schedule 05.09.2017
comment
Вот еще одна ссылка: answers.unity3d.com/questions/644911/   -  person Hellium    schedule 05.09.2017
comment
Я дал вам: ссылку на аналогичный вопрос в StackOverflow, официальное руководство и вопрос на официальной платформе ответов Unity, чтобы доказать, что вы не прилагали никаких усилий для самостоятельного поиска решения, что является .... 1-й совет в справочном центре   -  person Hellium    schedule 05.09.2017
comment
если вы не можете помочь и ссылаетесь только на другие места, это показывает, что вы явно не знаете, как помочь! Я подожду настоящих разработчиков, которые знают и могут помочь, а не тех, кто может только размещать ссылки!   -  person David Marsh    schedule 05.09.2017
comment
Дайте человеку рыбу, и вы накормите его на один день; научи человека ловить рыбу и ты накормишь его на всю жизнь   -  person Hellium    schedule 05.09.2017
comment
Как грубы некоторые люди здесь с людьми, ищущими помощи, это печально видеть и не нужно. Дэвид заявил, что он все еще встает на ноги с развитием, поэтому прыгать ему на спину нет необходимости. Как только я вернусь домой, я помогу тебе с этим мишкой @DavidMarsh со мной.   -  person james    schedule 05.09.2017
comment
Спасибо, Джеймс, я ценю это   -  person David Marsh    schedule 05.09.2017
comment
Решил это сейчас благодаря @Shadowtail, но благодарен за ваше желание помочь Джеймсу :-)   -  person David Marsh    schedule 05.09.2017


Ответы (1)


Кажется, нет ничего плохого в том, чтобы увеличить счет. Если вы хотите сохранить высокий балл и сохранить его в разных играх, я рекомендую создать файл .txt в папке «Активы» и записать в него счет, если он больше, чем в файле. Я не проверял это, потому что я на своем телефоне, но что-то вроде этого должно работать:

using System.IO;

public Text highScoreText;

void Start() {
    highScoreText.text = File.ReadAllText(TEXTFILEPATH);
}

if (collision.tag != currentColor) {
    Debug.Log ("You Died");

    if (File.Exists(TEXTFILEPATH) {
        int highScore = int.TryParse(File.ReadAllText(TEXTFILEPATH);
        if(score > highScore) {
            File.WriteAllText(TEXTFILEPATH, score.ToString());
        }
    else {
        File.WriteAllText(TEXTFILEPATH, score.ToString());
    }
    }
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
score = 0;
}
person Shadowtail    schedule 05.09.2017
comment
интересно! обязательно попробую и свяжусь с вами - person David Marsh; 05.09.2017