【发布时间】:2020-07-19 20:03:42
【问题描述】:
我被困在了。当激光击中敌人时,我试图给玩家分数。有两个主要的 if 条件。一种是当敌人与玩家发生碰撞时,敌人将被摧毁,并对玩家造成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);
}
【问题讨论】:
标签: c# unity3d 2d collision-detection