Tabrakan dan Mulai Ulang
Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 31 dari 56.
Tantangan
SedangKecelakaan mengakhiri permainan, dan sebuah tombol memulai permainan berikutnya. Pertahankan semua hal dari pelajaran sebelumnya. Canvas memiliki GameOverPanel tersembunyi dengan RestartButton berlabel Jalankan lagi, dan scene mengisi dua field baru milik GameManager, yaitu gameOverPanel dan restartButton. Runner memiliki Rigidbody kinematik, jadi ia menerima pesan trigger dari obstacle.
Di GameManager:
- Di atas class, deklarasikan
public enum GameState { Playing, GameOver }, lalu tambahkan fieldpublic GameState statepada class yang nilai awalnyaPlaying. - Tambahkan
using UnityEngine.UI;,using UnityEngine.SceneManagement;,public GameObject gameOverPanel;, danpublic Button restartButton;. - Sebuah method publik
GameOver()mengaturstatekeGameOver, mengaturspeedke 0 sehingga semua obstacle berhenti, lalu menampilkan panel. Update()tidak melakukan apa pun kecuali jika state adalahPlaying, sehingga kecepatan dan jarak berhenti.- Di
Start(), atur agarrestartButtonmemuat ulang scene yang sedang berjalan.
Di Runner: saat memasuki trigger dengan tag Obstacle, panggil GameManager.Instance.GameOver(). Saat state bukan Playing, tombol panah tidak melakukan apa pun.
Di Spawner: jangan munculkan apa pun saat state bukan Playing.
Tekan Play, tabrak obstacle, lalu mulai lagi, kemudian tekan Check.
Coba sendiri
using UnityEngine;
using TMPro;
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;
private float distance;
void Awake()
{
Instance = this;
}
void Update()
{
speed = Mathf.Min(speed + speedUp * Time.deltaTime, maxSpeed);
distance += speed * Time.deltaTime;
distanceText.text = "Distance: " + Mathf.FloorToInt(distance) + " m";
}
}
Semua pelajaran di Membangun Game Sungguhan
4Scene dan Level
Muat SceneMulai Ulang LevelLevel BerikutnyaPertahankan Antar-SceneRekap: Pilih Level10Proyek: Platformer 3D
LintasanPlatform Bergerak2Tombol dan Layar
Tombol dan onClickLambdaMenghubungkan di InspectorPanel Aktif dan NonaktifBilah KesehatanRangkuman: Toko Upgrade5Menyimpan dengan PlayerPrefs
Simpan AngkaMuat dengan Nilai DefaultSkor TertinggiSimpan PengaturanUlasan: Koin di Bank3Pengelola Game
Satu Skrip Menjalankan GameSingletonStatus GamePercabangan Berdasarkan StatusUlasan: Pengelola Ronde6Proyek: Pelari Tanpa Akhir
Tiga JalurRintangan di Depan