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

切换GoogleARCore为XR.ARFoundation后提示Frame不存在当前上下文如何解决

报错原因

Frame是Google ARCore原生SDK的专属类,ARFoundation跨平台AR框架没有提供该API,因此会报当前上下文不存在Frame的错误,需要改用ARFoundation原生的光照估计接口获取数据。

解决步骤
  • 确认场景中AR Session Origin对象挂载了ARCameraManager组件,并且在组件设置中开启了光照估计功能,根据需求选择对应的参数采集类型(仅需亮度的话选择平均强度即可)
  • 修改现有脚本,通过ARCameraManager获取光照估计数值,修改后的完整代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;

public class LightEstimationTest : MonoBehaviour
{
    // 声明ARCameraManager字段,将场景中的ARCameraManager组件拖到该字段赋值
    public ARCameraManager arCameraManager;

    [Range(0f,1f)]
    public float testValue = 0.5F;
    
    void OnValidate()
    {
        setGlobalLightEstimation(testValue);
    }
        
    void setGlobalLightEstimation(float lightValue)
    {
        Shader.SetGlobalFloat("_GlobalLightEstimation", lightValue);
    }
    
    void Update()
    {
        // 先判空避免空引用报错
        if (arCameraManager != null && arCameraManager.currentLightEstimation.averageBrightness.HasValue)
        {
            // 从ARCameraManager获取平均亮度值,对应原ARCore的PixelIntensity参数
            float lightIntensity = arCameraManager.currentLightEstimation.averageBrightness.Value;
            setGlobalLightEstimation(lightIntensity);
        }
    }
}

若不想手动拖入组件赋值,可以在Awake生命周期方法中添加arCameraManager = FindObjectOfType<ARCameraManager>();自动获取场景中的ARCameraManager实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:24:01