У меня есть игра, которая включает в себя уничтожение падающих часов менее чем за минуту, чтобы побить рекорд.В настоящее время у меня есть скрипт, который отслеживает счет, когда часы бьют.Я пытаюсь отобразить рекорд с этим экраном и сохранить его с PlayerPrefs.Хотя он будет обновлять текущий счет, когда часы, он не будет обновлять существующий текст рекордов или сохранить его при повторном запуске программы.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PickUp : MonoBehaviour
{
public GameObject explosionEffect;
public Rigidbody2D Clock;
public AudioClip pickupSound;
AudioSource audioSource;
public Text Score;
public Text highscore;
int Amount = 0;
public float SpeedUp = 1;
// Use this for initialization
void Start()
{
audioSource = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter2D(Collider2D other)
{
{
if (other.tag == "Clock")
{
Destroy(Instantiate(explosionEffect.gameObject, transform.position, transform.rotation), 5f);
audioSource.PlayOneShot(pickupSound, 1F);
Amount++;
Score.text = Amount.ToString() + " Clocks" ;
//Code of concern.
if (Amount > PlayerPrefs.GetInt("Highscore", 0))
{
PlayerPrefs.SetInt("Highscore", Amount);
highscore.text = "Highscore: " + Amount.ToString();
PlayerPrefs.Save();
Debug.Log("HS");
}
//Speeds up the clocks when hit, until a limit is met.
if (Clock.velocity.y >= -30)
{
Clock.velocity += Vector2.down * SpeedUp;
Debug.Log("Speed is now " + Clock.velocity);
}
}
}
}
}
Я также пытаюсь выяснить, как перенести эту информацию в Gameover Scene.Я не уверен, должен ли я полагаться на PlayerPrefs (если это может сделать работу, я не знаю) или изучить json, чтобы сделать это.