c# - 玩家在与敌人碰撞时死亡,同时增加分数 Unity
问题描述
我被困在了。当激光击中敌人时,我试图给玩家分数。有两个主要的 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);
}
解决方案
你正在摧毁你的播放器,你需要像这样改变你的代码:
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);
}
推荐阅读
- node.js - MongoDb Atlas 未连接到 Heroku
- python-3.x - Django 如何创建 Pip 和 Piplock 文件?
- javascript - OnClick 功能不会在
- swift - 在 Swift 上发出多个网络请求
- python - 将对称 Pandas 数据框中的索引、列和值分成三个不同的列,不重复
- php - 基于 WooCommerce 购物车中某个类别的商品数量的折扣
- python - 尝试在 pygame 中播放动画会导致错误
- python - tqdm.notebook 在 jupyter notebook 中显示带有“HBox”而不是进度条的消息
- python - 在 PyCharm 中将库从全局站点包移动到虚拟环境
- python - 数据被截断:无法滚动以捕获所有数据 Selenium Python