我被困在。当激光击中敌人时,我试图给玩家打分。如果有两个主要条件。一种是当敌人与玩家碰撞时,敌人将被消灭,并对玩家造成1点伤害。 在第二种情况下,如果敌人击中激光,它将为玩家增加得分。
“我已在全局上创建了该播放器变量,并在开始时进行了初始化”
public class Enemy : MonoBehaviour{
public float speedofenemy = 1.0f;
private Player player;
// Start is called before the first frame update
void Start()
{
player = GameObject.Find("Player").GetComponent<Player>();
}
加分后消灭敌人和激光。但是发生的是,当我的玩家与敌人发生碰撞时,它刚刚被摧毁。我不明白为什么? 请帮忙。
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Destroy(this.gameObject);
Player player = other.transform.GetComponent<Player>();
if (player != null)
player.Damage();
}
if (other.tag == "Laser")
if (player != null) {
player.addScore(10);
}
Destroy(other.gameObject);
Destroy(this.gameObject);
}
答案 0 :(得分:0)
您要摧毁播放器,需要像这样更改代码:
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Destroy(this.gameObject);
Player player = other.transform.GetComponent<Player>();
if (player != null)
player.Damage();
}
if (other.tag == "Laser")
{
if (player != null) {
player.addScore(10);
}
Destroy(other.gameObject);
}
Destroy(this.gameObject);
}