我有两个问题,关于Vuforia的AR-camera和iBeacon接收器的自动对焦。这些都行不通。
但是,我在Android平板电脑(me173x)上看到了这些问题。 我尝试了3款Android手机和iPhone5,5s和6+。没问题。
开发环境是: MacBookPro-Retina15-Early2012(FullSpec) OSX 10.10.4(最新) Unity 5.1.1p2(最新),专业版(但没有iOS-Pro且没有Android-Pro) Vuforia 4.2.3(最新)
我抓住了终端正在运行的pidcat --min-level w' (水平高于警告),因为这么多日志。
没有其他日志高于警告。
找到有关iBeacon的类链接的错误日志。 平板电脑支持蓝牙4.0和BLE,一些相机应用程序支持自动对焦。
我猜......由于设备架构而导致这些问题。
请帮助我!
P.S。 谢谢你的答复,jacob。
启用自动对焦的代码是:
using UnityEngine;
using Vuforia;
using System;
public class VuforiaARCameraAutoFocusMultiSelect : MonoBehaviour {
[SerializableAttribute]
public struct FocusModes {
public CameraDevice.FocusMode secondary;
public CameraDevice.FocusMode primary;
}
public FocusModes iOSFocusModes;
public FocusModes androidFocusModes;
public FocusModes defaultFocusModes;
void Start() {
var qcar = FindObjectOfType<QCARAbstractBehaviour>();
if (qcar != null) {
qcar.RegisterQCARStartedCallback(OnQCARStarted);
qcar.RegisterOnPauseCallback(OnQCARPaused);
Debug.Log("QCARBehaviour Found in current scene");
} else
Debug.LogError("Failed to find QCARBehaviour in current scene..");
}
/// <summary>
/// Raises the QCAR started event.
/// </summary>
private void OnQCARStarted() {
Debug.Log("OnQCARStarted");
SetFocusMode();
}
/// <summary>
/// Raises the QCAR paused event.
/// </summary>
/// <param name="paused">true: paused, false: resumed</param>
private void OnQCARPaused(bool paused) {
if (paused) {
Debug.Log("OnQCARPaused");
} else {
Debug.Log("OnQCARResumed");
SetFocusMode();
}
}
private void SetFocusMode() {
FocusModes modes;
#if UNITY_IOS
modes = iOSFocusModes;
#elif UNITY_ANDROID
modes = androidFocusModes;
#else
modes = defaultFocusModes;
#endif
if (CameraDevice.Instance.SetFocusMode(modes.primary))
Debug.LogFormat("Successfully enabled autofocus mode: {0}", modes.primary);
else if (CameraDevice.Instance.SetFocusMode(modes.secondary))
Debug.LogFormat("Successfully enabled autofocus mode: {0}", modes.secondary);
else
Debug.LogError("Couldn't enabled autofocus!!");
}
}
此代码附在“AR相机”上。场景中的游戏对象。