标识符2D碰撞代码的预期错误?

时间:2016-07-26 17:19:09

标签: c# unity3d scripting

我正在尝试使oncollision2D EnemyDamage完成从playerStats.health中移除健康状况,不幸的是我得到了错误,“标识符预期”有没有人知道我需要放在那里以使代码工作?感谢碰撞错误(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);
     }
 }

}

1 个答案:

答案 0 :(得分:0)

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

  void OnCollisionEnter2D(Collision2D) 
  {

  } 

应该是

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

如果您不需要获取有关collison的信息,则可以使用OnCollisionEnter2D函数,而不使用Collision2D参数。

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