Intro till enhet (12 / 14 steg)
Steg 12: Statistik och slutet villkor
Lägga till ett nytt skript kallas spelare i mappen scripts.
Följande kod kommer att tillåta spelaren att skadas, och starta om spelet när spelaren dödas.
/ / Hur många gånger som spelaren kan skadas innan spelet startar om
varHealth:int = 10;Minsta antal sekunder mellan spelaren att få ont
varDamageInvulnerabilityDelay:float = 2;Håller reda på förra gången spelaren skadades
privatevarinvulnerabilityStartTime:float;functionStart() {
Ange startvärde så spelaren är tillfälligt osårbar på spawn
invulnerabilityStartTime=Time.time;
}Att skada spelaren av det angivna antalet träffpoäng
functionHurt(damage:int) {
Om vi har väntat minst så länge som DamageInvulnerabilityDelay
om (Time.time-invulnerabilityStartTime > = DamageInvulnerabilityDelay) {
Skada spelaren
-= Hälsoskador;Nollställa timern osårbarhet
invulnerabilityStartTime=Time.time;
}Om spelaren har ingen hälsa lämnade
om (hälsa < = 0) {
Ladda om nivån
Application.LoadLevel(Application.loadedLevelName);
}
}
Om zombie kolliderar med spelaren, skada spelaren.
Lägg till följande funktion i Zombie skriptet.
/ / När the Zombie kolliderar med något
functionOnTriggerStay(other:Collider) {
Få den spelare som Zombie kolliderade med, om någon
varplayer=other.gameObject.GetComponent(Player);Om det krockar med något annat än blir en spelare null
IF(Player!=null) {
Subtrahera ett från spelarens hälsa
spelaren. Hurt(1);
}
}
Om kulan träffar en zombie, skada zombie.
Ersätta funktionen OnCollisionEnter i skriptet kula med följande
functionOnCollisionEnter(collision:Collision) {
Få den Zombie som kula kolliderade med, om någon
varzombie=Collision.Transform.gameObject.GetComponent(Zombie);Om det krockar med något annat än blir en Zombie zombie null
IF(Zombie!=null) {
Subtrahera ett från den Zombie hälsa
zombie. Hälsa--;Om zombie är ur hälsa bort dem från spelet
IF(zombie. Hälsa < = 0) {
Destroy(Collision.Transform.gameObject);
}
}Ta bort kulan från världen
Destroy(this.gameObject);
}