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

Unity Raycast在编辑器运行正常 打包到手机端无命中如何解决

Unity移动端Physics.Raycast失效排查方案

层级碰撞配置问题

  • 打开Edit > Project Settings > Physics面板,检查Layer Collision Matrix配置,确认射线所在图层和目标物体的图层勾选了碰撞交互。编辑器模式下会加载临时缓存的层级配置,打包后才会严格使用项目设置中的碰撞矩阵,这是该问题最常见的诱因。
  • 建议在Physics.Raycast参数中显式指定层级掩码,不要依赖默认值,示例:
// 仅检测TargetLayer层级的物体,避免无关层级干扰
int targetLayer = 1 << LayerMask.NameToLayer("TargetLayer");
if (Physics.Raycast(ray, out hit, Mathf.Infinity, targetLayer))

碰撞体相关问题

  • 检查目标物体的Collider组件是否勾选了Is Trigger,如果开启了触发选项,需要同步开启Physics面板中的Queries Hit Triggers配置,否则打包后射线不会命中触发类型的碰撞体。
  • 确认你要检测的是3D碰撞体(BoxCollider、SphereCollider等),如果目标物体挂载的是2D碰撞体,需要改用Physics2D.Raycast接口,3D和2D物理体系的检测逻辑完全独立,互不通用。
  • 如果目标物体被标记为静态物体,可临时关闭打包设置中的Static Batching选项测试,部分版本Unity静态合批后会出现碰撞体偏移,导致射线无法命中。

代码与逻辑问题

  • 提前缓存主相机引用,不要依赖Camera.main动态查找。移动端多相机场景或相机初始化顺序和编辑器不一致时,可能出现Camera.main为空或取到错误相机的问题。
  • 调整现有代码的RaycastHit作用域,避免访问未赋值的变量,修正后的代码参考:
// 提前缓存Camera
public Camera mainCam;

//Get input
if (Input.touchCount > 0 || Input.GetMouseButtonDown(0))
{
    if (!IsCurrentlyInTouch)
    {
        Ray ray;
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            ray = mainCam.ScreenPointToRay(touch.position);
        }
        else
        {
            ray = mainCam.ScreenPointToRay(Input.mousePosition);
        }
        
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit,Mathf.Infinity))
        {
            selectedObject = hit.transform;
            DebugTxt.text = hit.collider.name;
            //Do things
        }
        else
        {
            DebugTxt.text = "no hit " + ray.GetPoint(10) ;
        }
    }
    IsCurrentlyInTouch = true;
}
else
{
    IsCurrentlyInTouch = false;
}

其他移动端特殊配置排查

  • 检查是否有全屏透明UI层位于3D物体前方,确认UI所在图层没有被加入射线检测范围,或者UI的Graphic Raycaster没有阻挡3D射线检测。
  • 关闭相机的Occlusion Culling选项测试,移动端遮挡剔除的计算精度和编辑器存在差异,可能会将实际存在的物体判定为不可见,导致射线无法命中。
  • 确认打包时没有开启代码裁剪导致物理相关的类被误裁剪,可在link.xml中添加物理相关的类保留配置。

内容的提问来源于stack exchange,提问作者Floben Dale Moro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:45:01