【问题标题】:Unity - How can I make the snake to collect the food in order to get the score?Unity - 我怎样才能让蛇收集食物以获得分数?
【发布时间】:2021-05-10 09:49:03
【问题描述】:

实际上,我正在开发的贪吃蛇游戏有问题。

食物不会与蛇“玩家”发生碰撞,不会破坏游戏对象。我需要你的帮助,谢谢!

【问题讨论】:

  • 如果玩家接触到食物,会调用OnTriggerEnter2D吗?你知道如何调试代码吗?
  • @Ackdari 是的,它被调用了。我刚刚放了 debug.log,上面写着“碰撞”。

标签: c# unity3d 2d


【解决方案1】:

这些脚本是在食物上还是在蛇上?如果 OnTriggerEnter2d 在食物上,理论上它应该可以工作。如果它在蛇处,请更改它。话虽如此,您可以尝试一些事情。

  1. 在 if 语句中,试试这个:collision.gameObject.CompareTag("Player")
  2. 确保蛇有 RigidBody2D 组件

奖励 TODO:从更新中删除 GetComponent,这是一个巨大的性能转储。相反,在 ScoringSystem 中创建一个方法,该方法具有对 Text 对象的引用,并在收集食物时对其进行更新。

【讨论】:

  • 我还是有同样的问题。谢谢你的帮助。 :)
  • 另外,我假设您已取消注释实际上破坏食物的行,对吗?因为,你知道,它在 cmets 这里...
  • 你是对的! :D 我错过了 Destroy Game 对象。现在的问题是,收集食物后分数不会增加,它一直是0。
  • 我们取得了进展。那么,您确定 ScoringSystem 的引用已正确传递吗?检查这一点的简单方法是:你得到一个空指针错误吗?如果你这样做了,那么就是这种情况。
  • void OnTriggerEnter2D(Collider2D collision) { //if (collision.tag == "Player") collision.gameObject.CompareTag("Player"); Debug.Log("碰撞"); { 评分系统.theScore += 1; // 销毁(collision.gameObject); } }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2017-05-25
相关资源
最近更新 更多