【发布时间】:2018-06-05 12:46:13
【问题描述】:
我之前制作了很多colliders,我使用的是(collider otherOnTriggerEnter(collider other)),然后通过比较TAG来检查另一个colliders是否是我想要的>。但这次我没有触发 canMelee 布尔值。我的代码:
ArrayList Enemy;
public StatData stat;
[SerializeField]
private bool canMelee = false;
/// <summary>
/// OnTriggerEnter is called when the Collider other enters the trigger.
/// </summary>
/// <param name="other">The other Collider involved in this collision.</param>
void OnTriggerEnter(Collider col)
{
if (col.tag == "Enemy")
{
Debug.Log("Now you can do melee attack!");
canMelee = true;
}
}
所以我写了这段代码,但不知何故这不起作用我检查了标签并将其添加到玩家游戏对象中,但它仍然不起作用。
我尝试添加另一个调试以检查 OnTriggerEnter() 是否发生在 if 分支上方:Debug.Log("Triggered"); 并被触发。
我不知道出了什么问题。请帮帮我。
【问题讨论】:
-
您是否尝试过调试并在 if 块上放置断点?然后,您可以通过检查来检查“col”的标签是什么。我怀疑您可能已经设置了父游戏对象标签或类似的东西。您能否发布选择对象的屏幕截图?
-
不能告诉你出了什么问题,有几件事会导致这个问题(还有其他几个喜欢它)。我们需要知道您的 GameObjects 组件。包括 2 个 GameObjects Inspector 的屏幕截图。包括他们的图层和标签。
-
你也试过打印出
col.tag而不是"Triggered"。
标签: c# unity3d game-development