我正在尝试使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);
}
}
}
答案 0 :(得分:0)
Collision2D
是一个类,用于在与OnCollisionEnter2D
回调函数一起使用时返回冲突信息。如果你打算使用它,你必须在它之后添加一个变量。
void OnCollisionEnter2D(Collision2D)
{
}
应该是
void OnCollisionEnter2D(Collision2D col)
{
playerStats.Health -= EnemyDamage;
}
如果您不需要获取有关collison的信息,则可以使用OnCollisionEnter2D
函数,而不使用Collision2D
参数。
void OnCollisionEnter2D()
{
playerStats.Health -= EnemyDamage;
}