En İyi Koşu
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 32 / 56.
Görev
OrtaSon adım: en iyi koşuyu hatırla. Önceki derslerdeki her şeyi koru. Canvas'ın sağ üst köşesinde bir BestText, panelde ise gizli bir NewBestText (New best!) var; sahne bunları GameManager'ın iki yeni alanına yerleştiriyor: public TMP_Text bestText; ve public GameObject newBestText;. En iyiyi tam metre cinsinden BestRun anahtarı altında kaydet:
Start()içinde en iyi sonucu yükle (yeni bir oyuncu için 0) veBest: 57 mbiçiminde göster.GameOver()içinde, koşunun tam metre cinsinden değeri olanMathf.FloorToInt(distance)en iyi sonucu geçtiğinde yeni en iyi sonucu kaydet, göster venewBestText'i göster. Daha kısa bir koşu hiçbir şeyi değiştirmez.
En iyi sonuç, yeniden koşarken ve oyundan çıkarken de korunur. Play'e bas, bir en iyi sonuç belirle ve onu geçmeye çalış, ardından Check'e bas.
Kendin dene
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
public enum GameState { Playing, GameOver }
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public float speed = 10f;
public float speedUp = 0.5f;
public float maxSpeed = 20f;
public TMP_Text distanceText;
public GameObject gameOverPanel;
public Button restartButton;
public GameState state = GameState.Playing;
private float distance;
void Awake()
{
Instance = this;
}
void Start()
{
restartButton.onClick.AddListener(Restart);
}
void Update()
{
if (state != GameState.Playing) return;
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
public void GameOver()
{
state = GameState.GameOver;
speed = 0f;
gameOverPanel.SetActive(true);
}
void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler
1Ekrandaki Metinler
Canvas ve MetinSkoru GösterSayıları BiçimlendirGeri Sayım ZamanlayıcısıTekrar: Hız Göstergesi4Sahneler ve Bölümler
Bir Sahne YüklemeBölümü Yeniden BaşlatmaSonraki BölümSahneler Arasında SaklamaTekrar: Bölüm Seçimi10Proje: 3D Platform Oyunu
ParkurHareketli Platformlar2Düğmeler ve Ekranlar
Düğmeler ve onClickLambda İfadeleriInspector'da Bağlantı KurmaPanelleri Açma ve KapamaCan ÇubuklarıTekrar: Yükseltme Mağazası5PlayerPrefs ile Kaydetme
Bir Sayı KaydetmeVarsayılan Değerle YüklemeEn Yüksek SkorAyarları KaydetmeTekrar: Bankadaki Paralar