2016-07-26 9 views
0

Ich versuche eine oncollision2D EnemyDamage zu machen ist getan, Gesundheit von playerStats.health zu entfernen, leider habe ich den Fehler, "Identifier erwartet" weiß jemand, was ich dort setzen muss, um den Code zu arbeiten? Danke Fehler bei Collision (8,41). Kollision Schadenscode:Identifikator Erwarteter Fehler beim 2D-Kollisionscode?

using UnityEngine; 
using System.Collections; 

public class Collision : MonoBehaviour { 

int EnemyDamage = 1; 

    void OnCollisionEnter2D(Collision2D) 
{ 
    playerStats.Health -= EnemyDamage; 
} 
} 

Spieler Health Code:

using UnityEngine; 
using System.Collections; 

public class Player : MonoBehaviour { 

[System.Serializable] 
public class PlayerStats { 
    public int Health = 100; 
} 

public PlayerStats playerStats = new PlayerStats(); 

public int fallBoundary = -20; 

void Update() { 
    if (transform.position.y <= fallBoundary) 
     DamagePlayer (9999999); 
} 

public void DamagePlayer (int damage) { 
    playerStats.Health -= damage; 
    if (playerStats.Health <= 0) { 
     GameMaster.KillPlayer(this); 
    } 
} 

} 
+0

Können Sie niederschreiben, was Sie versucht haben, sowie den vollen Fehler mit der Stack-Spur? - Haben Sie die Ausnahme oder die innere Ausnahme betrachtet? – jdave

Antwort

0

Collision2D ist eine Klasse und verwendet wird Kollisionsinformationen zurückzukehren, wenn sie mit der OnCollisionEnter2D Callback-Funktion verwendet. Wenn Sie es benutzen wollen, müssen Sie eine Variable hinterlegen.

void OnCollisionEnter2D(Collision2D) 
    { 

    } 

sollte

void OnCollisionEnter2D(Collision2D col) 
{ 
    playerStats.Health -= EnemyDamage; 
} 

sein, wenn Sie nicht brauchen, um Informationen über die collison zu bekommen, kann man einfach nutzen die OnCollisionEnter2D Funktion ohne Collision2D Parameter alle at-.

void OnCollisionEnter2D() 
{ 
    playerStats.Health -= EnemyDamage; 
}