2016-07-26 45 views
0

我想做一个oncollision2D EnemyDamage完成从playerStats.health删除健康,不幸的是我得到了错误,“标识符预期”没有人知道我需要把那里让代码工作?感谢Collision(8,41)的错误。 碰撞损坏代码:标识符二维碰撞代码上的预期错误?

using UnityEngine; 
using System.Collections; 

public class Collision : MonoBehaviour { 

int EnemyDamage = 1; 

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

球员健康守则:

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

你可以放下你试过的东西,以及堆栈轨道的完整错误吗? - 你看过异常还是内部异常? – jdave

回答

0

Collision2D是一类用于与OnCollisionEnter2D回调函数一起使用时返回冲突信息。如果你打算使用它,你必须在它之后放置一个变量。

void OnCollisionEnter2D(Collision2D) 
    { 

    } 

应该

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

如果您不需要获取有关科里森的信息,您可以只使用OnCollisionEnter2D功能没有不惜一切Collision2D参数。

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