You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何驶过标记为Trigger且标签为Package的GameObject时,未触发‘Package picked up’提示?

问题排查与修复方案
  • 确认脚本挂载对象

    • 若脚本挂在Package上:当前OnTriggerEnter2D里判断other.gameObject.CompareTag("Package")是错误的,此时other是车辆对象,永远不会匹配。需改成判断车辆的标签,比如:
      void OnTriggerEnter2D(Collider2D other)
      {
          if (other.gameObject.CompareTag("Vehicle")) // 需给车辆设置对应标签
          {
              Debug.Log("Package picked up");
          }       
      }
      
    • 若脚本挂在车辆上:检查Package的标签是否为Package(大小写完全一致,无拼写错误)。
  • 检查刚体设置

    • 确保至少有一个对象的Rigidbody2D未勾选Kinematic(运动学),Unity触发事件要求不能两个对象都是运动学刚体。
    • 刚体的Body Type不能是Static,需设为Dynamic或Kinematic(但不能两者都是Kinematic)。
  • 检查碰撞体设置

    • 车辆的Collider2D不能勾选Is Trigger,触发事件需要一个Trigger碰撞体(Package)和一个非Trigger碰撞体(车辆)配合。
    • 勾选Scene视图的Gizmos,可视化查看两个碰撞体的范围,确认车辆驶过时有实际重叠。
  • 基础碰撞测试

    • 暂时取消Package碰撞体的Trigger勾选,开车撞击,若控制台输出Oof!,说明基础碰撞检测正常,问题仅出在触发器设置;若仍无输出,检查脚本是否启用、组件是否正常挂载(脚本、Rigidbody2D、Collider2D都不能被禁用)。

内容的提问来源于stack exchange,提问作者Nienna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:57:12