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

Unity BoxCollider2D触发器无法触发问题排查求助

Unity 2D触发器无响应解决方案

你遇到的核心问题是混用了3D与2D的触发器回调API,2D碰撞/触发器体系有单独的专用API,需要先修正代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class hit : MonoBehaviour
{      
    // 2D触发器回调必须使用OnTriggerEnter2D,参数为Collider2D类型
    public void OnTriggerEnter2D(Collider2D other)
    {          
        // 推荐使用CompareTag方法判断标签,避免空引用异常
        if (other.gameObject.CompareTag("Player")) 
        {               
            Debug.Log("triggered");
        }
    }
}

修正代码后如果依旧没有触发,请逐一检查以下配置:

  • 至少为两个碰撞物体中的一个挂载Rigidbody2D组件:Unity 2D的碰撞、触发器事件触发的前提是双方至少有一方带有2D刚体组件,通常建议给移动的Player对象挂载,按需调整重力缩放、是否为运动学刚体等参数即可。
  • 检查2D碰撞层配置:打开编辑器顶部菜单的编辑->项目设置->物理2D面板,确认两个物体所在的图层在碰撞矩阵中处于勾选允许交互的状态。
  • 确认标签配置正确:Player对象的标签必须完全匹配Player字符串,大小写、前后空格都不能有偏差。
  • 确认碰撞体参数正常:检查两个BoxCollider2D的尺寸、偏移参数无异常,不存在碰撞体尺寸为0、偏移超出物体范围导致碰撞时没有实际重叠的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:08