Opprette en enkel spillbehandler i Unity
En Game Manager i Unity er et sentralt skript eller system som overvåker og kontrollerer kjernemekanikken og logikken i et spill. Den administrerer vanligvis spilltilstander (f.eks. start, pause, slutt), spillerfremgang, poeng, nivåer og globale innstillinger. Game Manager er avgjørende for å sikre en ren struktur i prosjektet ditt og unngå overflødig kode. I denne opplæringen lager vi en grunnleggende Game Manager for å håndtere spillstatus og poengsporing.
Trinn 1: Sette opp scenen
For å begynne, forberede en enkel Unity scene:
- Opprett et nytt Unity 3D-prosjekt.
- Legg til et grunnleggende nivåoppsett, for eksempel et Plane for bakken og noen få objekter for spillelementer.
- Lag et UI-lerret for å vise informasjon som partituret.
Trinn 2: Opprette Game Manager-skriptet
Spillbehandleren vil være en singleton for å sikre at den er lett tilgjengelig og bare én forekomst eksisterer gjennom hele spillet. La oss skrive manuset:
- Høyreklikk i prosjektpanelet og velg Create > C# Script. Gi det navnet GameManager.
- Åpne skriptet i koderedigeringsprogrammet og erstatt innholdet med følgende:
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance; // Singleton instance
public int score = 0; // Player's score
public bool isGameActive = true; // Is the game running?
void Awake()
{
// Ensure there is only one instance of GameManager
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject); // Persist across scenes
}
else
{
Destroy(gameObject); // Destroy duplicate instances
}
}
// Method to increase the score
public void AddScore(int points)
{
if (isGameActive)
{
score += points;
Debug.Log("Score: " + score);
}
}
// Method to end the game
public void EndGame()
{
isGameActive = false;
Debug.Log("Game Over!");
// Additional logic to handle game over, like displaying UI
}
}
Trinn 3: Legge til Game Manager til scenen
La oss nå legge til Game Manager til scenen:
- Lag et tomt GameObject i hierarkiet og gi det navnet GameManager.
- Dra og slipp GameManager-skriptet på GameObject.
- Sørg for at det ikke er noen dupliserte GameManager GameObjects i scenen.
Trinn 4: Oppdatere Gameplay Logic
La oss bruke Game Manager til å håndtere spillerinteraksjoner. For eksempel vil vi endre spillobjekter for å samhandle med Game Manager:
- Lag et nytt skript kalt Target for objekter spilleren kan samhandle med.
- Bruk følgende kode for målskriptet:
using UnityEngine;
public class Target : MonoBehaviour
{
public int pointValue = 10; // Points awarded for interacting with this target
void OnMouseDown()
{
if (GameManager.Instance.isGameActive)
{
// Add points to the score
GameManager.Instance.AddScore(pointValue);
// Destroy the target
Destroy(gameObject);
}
}
}
Dette skriptet forutsetter at spilleren samhandler med objekter ved å klikke på dem. Du kan tilpasse det til spillets mekanikk, for eksempel kollisjoner eller triggere.
Trinn 5: Vise poengsummen
Slik viser du poengsummen til spilleren:
- Lag et Text UI-element i Canvas og gi det navnet ScoreText.
- Lag et nytt skript kalt ScoreUI og fest det til Canvas.
- Bruk følgende kode for å oppdatere poengvisningen:
using UnityEngine;
using UnityEngine.UI;
public class ScoreUI : MonoBehaviour
{
public Text scoreText;
void Update()
{
if (GameManager.Instance != null)
{
scoreText.text = "Score: " + GameManager.Instance.score;
}
}
}
Dra ScoreText UI-elementet inn i ScoreText-feltet i Inspector.
Trinn 6: Testing av Game Manager
Slik tester du Game Manager:
- Kjør scenen og samhandle med objekter som bruker Target-skriptet.
- Se poengoppdateringen i brukergrensesnittet mens du samhandler med mål.
- Kalle EndGame-metoden (f.eks. ved å bruke en trigger eller knapp) for å teste å avslutte spillet.
Valgfrie forbedringer
Du kan utvide spillbehandlerens funksjonalitet med disse funksjonene:
- Nivåstyring: Last inn nye nivåer eller tilbakestill scenen når spillet er over.
- Spilltimer: Legg til en nedtellingstidtaker for å utfordre spillere.
- Lagring av fremgang: Lagre og hent frem spillerens fremgang ved å bruke PlayerPrefs eller et lagringssystem.
- Pausemeny: Implementer en pausemeny for å stoppe spillet og vise alternativer.
Konklusjon
Vi har laget en enkel Game Manager for å administrere spillstatus og poengsporing i Unity. Game Manager sentraliserer kjernelogikken, noe som gjør prosjektet ditt mer organisert og skalerbart. Eksperimenter med tilleggsfunksjoner for å skreddersy Game Manager til spillets behov.