【发布时间】:2023-03-13 21:48:02
【问题描述】:
我在 unity3D 中创建一个用于测试目的的基本游戏,每当在定义的对象上发生碰撞时,我都会计算对象的数量。我创建了objects,命名为birds1 upto birds8,同时击中了名为birds1、birds2 的对象。我正在尝试增加计数器,它应该将 f 的值增加 1,如果在这里击中鸟,计数器会增加随机数而不是增加 1。我设置了一个计数器不应超过的值限制为 8,因此它停止在 8 的限制。下面是我的代码,我发布了我正在使用的代码。请任何人都可以帮助我解决我的代码运行错误的地方。
public void OnTriggerEnter2D(Collider2D target)
{
if (target.gameObject.name == "bird1" || target.gameObject.name == "bird2" || target.gameObject.name == "bird3" || target.gameObject.name == "bird4" || target.gameObject.name == "bird5" || target.gameObject.name == "bird6" || target.gameObject.name == "bird7" || target.gameObject.name == "bird8" && f < 8)
{
f++;
propPAnel8.SetActive(true);
BirdText.text = "x " + f;
if (f == 8)
{
bound8.isTrigger = true;
}
}
}
【问题讨论】:
-
你能显示包含这个 if 语句的冲突代码吗?这段代码似乎没有任何问题。仅供参考,您可以为每种类型的鸟分配一个“标签”,然后执行
if (target.gameObject.tag == "bird"),而不是检查每个鸟的名称。 -
@ryeMoss 我已经更新了代码
-
@ryeMoss 我也尝试在同一个标签中标记所有鸟类,但它仍然给出随机增量。
-
鸟类是否只有一个对撞机。
-
@SerkanPekçetin 谢谢,这对我有用。