美文网首页unity
关于unity中使用Vuforia制作AR场景如何设置自动对焦的

关于unity中使用Vuforia制作AR场景如何设置自动对焦的

作者: 楼上小宇 | 来源:发表于2017-07-30 20:18 被阅读385次

    问题

    不知道大家有没有这样的感受,在使用Vuforia制作时候,导入安装包后,在手机上使用时候镜头会很模糊,往往连识别对象都看不清

    解决方案

    在一开始遇到问题时候,在网上一顿狂搜但也没有发现一个行之有效的办法,无奈只能上官方网站上看有没有相关问题的解决办法,还真有,传送门在此,以为就可以解决了,但真是坑啊。官网给的在unity代码如下:

    void Start () 
    {
        VuforiaBehaviour.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
        VuforiaBehaviour.Instance.RegisterOnPauseCallback(OnPaused);
    }
      
    private void OnVuforiaStarted()
    {
        CameraDevice.Instance.SetFocusMode(
            CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    }
      
    private void OnPaused(bool paused)
    {
        if (!paused) // resumed
        {
            // Set again autofocus mode when app is resumed
            CameraDevice.Instance.SetFocusMode(
                CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
        }
    }
    

    根据官网提示,我首先新建了一个CameraMode的C#脚本然后把他挂载到了ARCamera之上,打开CameraMode的C#脚本,把上述代码粘贴到脚本中之后,有意思的一幕发生了,竟然VuforiaBehaviour报错了,报错了,报错了
    后来尽管一番搜索发现,Vuforia厂家竟然给插件更新之后,这个官方解决方法一直没有更新,真是无言以对啊。原来把VuforiaBehaviour换成VuforiaARController就可以了。还要在引入using Vuforia的命名空间才可以。

    操作界面
    我的完整代码如下:
    using UnityEngine;
    using System.Collections;
    using Vuforia;
    
    public class CameraMode : MonoBehaviour
    {
    
        // Use this for initialization
        void Start ()
        {
            
            VuforiaARController.Instance.RegisterVuforiaStartedCallback (OnVuforiaStarted);
            VuforiaARController.Instance.RegisterOnPauseCallback (OnPaused);
        }
    
        void Update ()
        {
            
        }
    
        private void OnVuforiaStarted ()
        {
            CameraDevice.Instance.SetFocusMode (
                CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
        }
    
        private void OnPaused (bool paused)
        {
            if (!paused) { // resumed
                // Set again autofocus mode when app is resumed
                CameraDevice.Instance.SetFocusMode (
                    CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
            }
        }
    }
    
    

    这样写之后,再打包apk到手机上之后,感觉一双瞎了的眼睛好了,而且是最好的眼睛,vuforia的这个自动对焦十分准确,真是Nice啊

    后记

    困扰许久得问题终于解决了,莫名的开心。如果这也解决了你的问题,就给个赞呗!!!
    也可以查看我的CSDN博客:楼上小宇___home

    相关文章

      网友评论

        本文标题:关于unity中使用Vuforia制作AR场景如何设置自动对焦的

        本文链接:https://www.haomeiwen.com/subject/utpklxtx.html