当所有的点都被吃掉时,如何在帕克曼结束比赛

  • 本文关键字:帕克 结束 unity-game-engine
  • 更新时间 :
  • 英文 :


当所有点数都被吃掉时,如何在帕克曼结束游戏?

这是结束游戏代码现在

void OnTriggerEnter2D(Collider2D co)
{
if (co.name == "PacMan")
{
Destroy(co.gameObject);
EndMenu.SetActive(true);
GameObject.Find("EndGameConvas/EndGamePanel/Score").GetComponent<Text>().text = GameObject.Find("Canvas/Score").GetComponent<Text>().text;
Time.timeScale = 0;
}
}

这是吃点代码

private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.name == "PacMan")
{
Destroy(gameObject);
GameObject.Find("Canvas/Score").GetComponent<Score>().ScoreChange(1);
}
}

如果你要问的是"我如何让游戏知道关卡已经结束并触发结束;然后只要有一个变量来保持这个级别中有多少个点,每次你吃了一个,然后触发对撞机发射,就有一个计数器上升。当计数器等于总数时,级别结束。

在您的类中,对于点,您可以使用类似的东西

public class YourDotClass : MonoBehaviour
{
// Keeps track of all currently existing instances of this class
private readonly static HashSet<YourDotClass> _instances = new HashSet<YourDotClass>();
private void Awake ()
{
// Register yourself to the instances
_instances.Add(this);
}
private void OnDestroy ()
{
// Remove yourself from the instances
_instances.Remove(this);
// Check if any instance still exists
if(_instances.Count == 0)
{
// => The last dot was just destroyed!
EndMenu.SetActive(true);
GameObject.Find("EndGameConvas/EndGamePanel/Score").GetComponent<Text>().text = GameObject.Find("Canvas/Score").GetComponent<Text>().text;
Time.timeScale = 0;
}
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.name == "PacMan")
{
Destroy(gameObject);
GameObject.Find("Canvas/Score").GetComponent<Score>().ScoreChange(1);
}
}
}

但是,您真的应该重新思考/重组您的代码,并思考谁应该为什么负责。

就我个人而言,我不希望这些圆点负责增加分数并结束比赛。。我宁愿在玩家身上安装一个组件,让它检查碰撞,增加自己的分数,并最终告诉一些经理,一旦所有的点都被摧毁,就结束游戏;(

我认为您可以使用这样的东西。只需将所有的pacdot存储在一个数组中,一旦数组为空,您就可以结束游戏。

GameObject[] pacdots = GameObject.FindGameObjectsWithTag("pacdot");

void OnTriggerEnter2D(Collider2D collision)
{
// pacman collided with a dot
if (collision.name == "PacMan")
{
Destroy(gameObject);
GameObject.Find("Canvas/Score").GetComponent<Score>().ScoreChange(1);
if (pacdots.length == 0)
{
// All dots hit do something
}
}
}

最新更新