当我开车经过触发器时,我在控制台中没有得到任何响应。在包中我有Rigidbody2D,碰撞脚本,碰撞器2D,它被标记为触发器。在车上我有碰撞器2D,Rigidbody2D和我的运动脚本。我对编码非常陌生,所以我的小眼睛不能告诉我什么错了:(
void OnCollisionEnter2D(Collision2D other)
{
Debug.Log("Oof!");
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Package"))
{
Debug.Log("Package picked up");
}
}
1条答案
按热度按时间trnvg8h31#
此碰撞脚本正在比较与其碰撞的对象具有“Package”标记。
if(other.gameObject.CompareTag(“Package”))
从你告诉我的,这个脚本是目前的包对象。所以它是一个包检查,如果它与另一个“包”冲突…
解决方案是将脚本移动到汽车,因为汽车将与包裹碰撞。
附言:只有在满足“if”条件时,才会记录“Package picked up”消息。包裹标签是“Package”吗?