Satu Skrip Menjalankan Game
Termasuk bagian Membangun Game Sungguhan dalam perjalanan Unity di Coddy. Pelajaran 12 dari 56.
Letakkan skor di script pemain, jumlah nyawa di script kesehatan, dan pemeriksaan game-over di script ketiga. Setiap script membutuhkan angka dari script lainnya, jadi setiap aturan baru memengaruhi beberapa file. Game Unity biasanya menyimpan angka-angka itu di satu script, GameManager, pada GameObject kosong tersendiri. Script ini mengelola skor, jumlah nyawa, dan aturan yang mengakhiri game. Script lain hanya melaporkan kejadian dengan memanggil method publiknya. Dalam adu penalti ini, jaring melaporkan setiap gol:
public class GameManager : MonoBehaviour
{
private int goals;
private int shotsLeft = 5;
public void ShotTaken(bool scored)
{
if (shotsLeft == 0) return;
shotsLeft--;
if (scored) goals++;
Debug.Log("Goals: " + goals + ", shots left: " + shotsLeft);
if (shotsLeft == 0) Debug.Log("Full time: " + goals + " goals");
}
}// Net.cs, pada trigger gawang
public GameManager game;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Ball")) game.ShotTaken(true);
}Jaring tidak tahu berapa banyak tendangan yang tersisa atau kapan game berakhir. Jaring melaporkan gol, lalu manager menentukan artinya. Script kiper melaporkan penyelamatan dengan game.ShotTaken(false). Untuk adu penalti dengan 3 tendangan, kamu cukup mengubah satu angka di satu script. Pemeriksaan di bagian atas ShotTaken mencegah bola yang masuk setelah waktu berakhir tetap dihitung.
Kamu mengisi field game di Inspector dengan menyeret objek GameManager ke field tersebut, lalu Unity menemukan script GameManager pada objek itu. Manager juga menjadi tempat untuk HUD: saat manager menyimpan teks skor dan panel game-over, layar berubah di method yang sama dengan perubahan angka, dan tidak ada script lain yang menyentuh UI.
Tantangan
MudahPerburuan permata. Tombol panah menggerakkan Player (skripnya sudah siap). Permata bernilai sesuai points-nya, bom mengurangi nyawa, dan GameManager mengelola semuanya. Inspector sudah menghubungkan field game setiap permata dan bom ke object GameManager, serta field GameManager ke HUD dan Player.
Di GameManager.cs:
AddScore(int points)menambahkan points kescoredan menampilkannya discoreText, sepertiScore: 6.LoseLife()mengurangilivessebanyak 1 (mulai dari 3) dan menampilkannya dilivesText, sepertiLives: 2.- Saat
livesmencapai 0, permainan berakhir: tampilkangameOverPaneldan nonaktifkan skrip Player agar tombol panah berhenti berfungsi. Setelah itu,AddScoretidak mengubah apa pun.
Di Gem.cs dan Bomb.cs: saat Player (dengan tag Player) menyentuh salah satunya, objek itu memberi tahu game (permata melaporkan points-nya, bom melaporkan nyawa yang hilang), lalu menghapus dirinya sendiri.
Tekan Jalankan, kumpulkan permata dan sentuh bom, lalu tekan Periksa.
Coba sendiri
using UnityEngine;
using TMPro;
public class GameManager : MonoBehaviour
{
public TMP_Text scoreText;
public TMP_Text livesText;
public GameObject gameOverPanel;
public Player player;
private int score;
private int lives = 3;
private bool gameOver;
public void AddScore(int points)
{
// tambahkan poin dan tampilkan skor baru, kecuali permainan sudah berakhir
}
public void LoseLife()
{
// kurangi satu nyawa dan tampilkan sisa nyawa; saat nyawa mencapai 0, permainan berakhir
}
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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