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

如何在无外接硬件的独立设备Unity3D移动项目中实现眼动追踪?

嘿,这个问题问到点子上了——外接眼动追踪硬件不仅成本高,还限制了移动端的便携性,靠设备自身实现才是实用的路子。我来分享几个亲测有效的方案,全都是不需要额外硬件的:

方案一:基于前置摄像头的视觉式眼动追踪(纯软件实现)

这是兼容性最广的方案,只要设备有前置摄像头就能用,核心是靠计算机视觉检测眼部关键点来推导视线:

  • 第一步:获取前置摄像头画面
    在Unity里用WebCamTexture就能直接调用前置摄像头,把画面拿到手。示例代码:
    WebCamTexture webcamTexture;
    void Start() {
        // 遍历设备找到前置摄像头
        WebCamDevice[] devices = WebCamTexture.devices;
        foreach (var device in devices) {
            if (device.isFrontFacing) {
                webcamTexture = new WebCamTexture(device.name, 640, 480); // 降低分辨率节省性能
                webcamTexture.Play();
                // 可选:把画面显示在UI上方便用户对齐
                GetComponent<RawImage>().texture = webcamTexture;
                break;
            }
        }
    }
    
  • 第二步:提取眼部关键点
    别自己训练模型,直接用现成的计算机视觉工具,比如MediaPipe的Face Mesh。它能实时检测面部468个关键点,其中包含瞳孔中心、虹膜边缘、眼角这些眼动追踪必需的点位。你可以在Unity的Package Manager里找到MediaPipe相关的包,集成后直接调用API获取这些关键点的2D/3D坐标。
  • 第三步:计算与映射视线方向
    拿到眼部关键点后,结合面部的3D姿态(MediaPipe也能输出),把2D的眼部偏移转换成3D视线向量。比如用瞳孔中心相对于内外眼角的比例,来判断视线的左右上下偏移,再投射到场景中,就能知道用户在看UI或3D物体的哪个位置了。
方案二:利用AR Foundation调用原生硬件眼动追踪

现在不少旗舰移动端(比如iPhone 12+、部分安卓旗舰)自带原生眼动追踪硬件,用AR Foundation能直接调用系统API,精度和性能都比纯软件方案好太多:

  • 先在Package Manager里安装AR Foundation和对应平台的Provider(iOS装ARKit,安卓装ARCore)
  • 启用眼动追踪:在AR Session Origin的配置里,iOS要在ARFaceTrackingConfiguration中勾选enableEyeTracking;安卓需要设备支持ARCore的眼动追踪功能
  • 获取视线数据:通过ARFace组件的leftEyePose和rightEyePose就能拿到双眼的姿态,其中forward向量就是视线方向。示例代码:
    [SerializeField] ARFace face;
    void Update() {
        if (face != null && face.leftEyePose.HasValue) {
            Vector3 gazeDir = face.leftEyePose.Value.forward;
            // 把视线投射到场景里检测交互对象
            if (Physics.Raycast(face.transform.position, gazeDir, out RaycastHit hit, 10f)) {
                Debug.Log($"用户正在注视: {hit.collider.gameObject.name}");
                // 这里可以添加UI高亮、触发事件等逻辑
            }
        }
    }
    
    提醒:这个方案只支持原生硬件支持的设备,兼容性不如纯软件方案,但体验是最好的。
方案三:用第三方Unity插件快速集成

如果不想自己折腾计算机视觉和算法,直接用成熟的第三方插件就行,省心省力:

  • EyeTrackingUnity:有纯软件版本,基于摄像头实现,支持iOS和安卓,自带校准流程,能直接输出视线交互的触发事件,适合快速落地。
  • GazePointer:轻量级插件,专门针对移动端优化,结合面部检测实现视线追踪,对UI项目友好。
    这些插件大多开箱即用,不过部分可能需要付费,根据自己的项目需求选就行。
几个关键优化小贴士
  • 性能优先:移动端算力有限,纯软件方案建议把摄像头分辨率降到640x480,模型推理帧率控制在15-30帧,避免掉帧影响体验。
  • 校准不可少:第一次使用时引导用户看几个屏幕上的固定点,校准视线偏移,能大幅提升追踪精度。
  • 环境适配:尽量让用户在光线充足的环境下使用,避免逆光或强光直射脸部,不然眼部检测的准确率会暴跌。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:29:01