问题
不知道大家有没有这样的感受,在使用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