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

Unity中如何为ARCamera实现类似手机原生相机的双指缩放功能

ARCamera双指拖拽缩放实现方案

AR相机的缩放核心是调整视场角(FOV),通过捕捉双指触摸的距离变化,映射为FOV的增减,就能实现和原生相机一致的缩放体验。以下是Unity引擎下的实现代码(适配AR Foundation):

实现步骤

  • 监听双指触摸输入,计算两指初始距离与当前距离的差值
  • 根据差值比例调整相机FOV,同时限制缩放范围防止过度拉伸
  • 将脚本挂载到ARCamera对象上即可
using UnityEngine;
using UnityEngine.XR.ARFoundation;

[RequireComponent(typeof(ARCameraManager))]
public class ARCameraZoom : MonoBehaviour
{
    [Header("缩放参数")]
    [SerializeField] private float minFOV = 20f; // 最小视场角(最大缩放)
    [SerializeField] private float maxFOV = 60f; // 最大视场角(最小缩放)
    [SerializeField] private float zoomSpeed = 1f; // 缩放灵敏度

    private Camera arCamera;
    private float initialFingerDistance;
    private float initialFOV;

    void Awake()
    {
        arCamera = GetComponent<Camera>();
    }

    void Update()
    {
        // 仅处理双指触摸
        if (Input.touchCount == 2)
        {
            Touch touch1 = Input.GetTouch(0);
            Touch touch2 = Input.GetTouch(1);

            // 双指刚接触屏幕时记录初始状态
            if (touch1.phase == TouchPhase.Began || touch2.phase == TouchPhase.Began)
            {
                initialFingerDistance = Vector2.Distance(touch1.position, touch2.position);
                initialFOV = arCamera.fieldOfView;
            }
            // 双指移动时计算缩放比例
            else if (touch1.phase == TouchPhase.Moved && touch2.phase == TouchPhase.Moved)
            {
                float currentFingerDistance = Vector2.Distance(touch1.position, touch2.position);
                float scaleFactor = currentFingerDistance / initialFingerDistance;

                // 计算新的FOV并限制范围
                float newFOV = initialFOV / scaleFactor;
                arCamera.fieldOfView = Mathf.Clamp(newFOV * zoomSpeed, minFOV, maxFOV);
            }
        }
    }
}

注意事项

  • 如果使用其他AR框架(如Vuforia),只需替换ARCameraManager的依赖逻辑,核心的触摸计算和FOV调整逻辑通用
  • 可根据需求调整minFOV、maxFOV和zoomSpeed参数,适配不同的缩放手感
  • 部分AR设备可能对相机FOV有硬件限制,建议测试时调整合理的参数范围

内容的提问来源于stack exchange,提问作者Brayan Vinicius Jordan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:33:11