我的弹药和碰撞脚本不会让弹药耗尽



我试图在统一的弹药系统,但它不会工作。问题是,即使我的弹药用光了,我也可以继续摧毁小行星。

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ExplosionOnTouch : MonoBehaviour
{
// Start is called before the first frame update
public int Ammo = 10;
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (Ammo > 0)
{
Ammo = Ammo - 1;
Destroy(gameObject);
}
else
{
SceneManager.LoadScene("DeathScreen", LoadSceneMode.Single);
}
}
}

您的Ammo永远不会变为零。你的脚本生命周期现在是:

  • 创建对象
  • 创建时设置Ammo为10
  • 在碰撞时减少Ammo破坏Ammo计数为9的物体

因此,您需要将Ammo计数移动到一个位置,并使所有脚本减少一个公共计数器,而不是每个对象的唯一计数器。例如,到创建子弹的脚本。这样会更符合逻辑。

相关内容

  • 没有找到相关文章

最新更新