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

Unity 3D中使用EasyAR开启相机闪光灯遇CS1061错误求助

解决EasyAR中相机闪光灯设置的CS1061错误

错误原因

你代码里的cameraDevice.CameraParameters返回的是object类型,并非强类型的相机参数对象,所以直接访问FlashTorchMode会触发CS1061错误——编译器无法识别object类型上的该属性。

解决方案

EasyAR针对不同平台提供了强类型的相机参数类:

  • Android平台:CameraParametersAndroid
  • iOS平台:CameraParametersiOS

需要先将CameraParameters强制转换为对应平台的类型,再设置闪光灯模式,最后将修改后的参数应用到相机设备才能生效。

修改后的完整代码

using UnityEngine;
using easyar;

public class FlashController : MonoBehaviour
{
    private CameraDeviceBehaviour cameraDevice;

    private void Start()
    {
        cameraDevice = GetComponent<CameraDeviceBehaviour>();
    }

    public void EnableFlash()
    {
        SetFlashTorchMode(true);
    }

    public void DisableFlash()
    {
        SetFlashTorchMode(false);
    }

    private void SetFlashTorchMode(bool enable)
    {
        if (cameraDevice == null || cameraDevice.Device == null)
        {
            Debug.LogError("CameraDeviceBehaviour 或 CameraDevice 未找到");
            return;
        }

        // 获取当前相机参数并转为对应平台的强类型
        object parametersObj = cameraDevice.CameraParameters;
        if (Application.platform == RuntimePlatform.Android)
        {
            var parameters = parametersObj as CameraParametersAndroid;
            if (parameters != null)
            {
                parameters.FlashTorchMode = enable;
                // 将修改后的参数应用到相机
                cameraDevice.Device.setCameraParameters(parameters);
            }
        }
        else if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            var parameters = parametersObj as CameraParametersiOS;
            if (parameters != null)
            {
                parameters.FlashTorchMode = enable;
                // 将修改后的参数应用到相机
                cameraDevice.Device.setCameraParameters(parameters);
            }
        }
        else
        {
            Debug.LogWarning("当前平台不支持闪光灯");
        }
    }
}

额外注意事项

  • 确保已在EasyAR配置中开启相机及闪光灯相关权限
  • 部分设备硬件不支持闪光灯,建议在设置前增加设备能力检查
  • 修改参数后必须调用cameraDevice.Device.setCameraParameters()才能让设置生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 06:22:44