[英]Errors when upgrading Vuforia in Unity from version 9 to version 10
找不到类型或命名空间名称“SmartTerrain”(是否缺少 using 指令或程序集引用?)
找不到类型或命名空间名称“PositionalDeviceTracker”(是否缺少 using 指令或程序集引用?)
这些错误不在版本 9 中,但在版本 10 中它们影响项目流程请帮助我
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Vuforia;
public class ARManager : MonoBehaviour
{
public PlaneFinderBehaviour finder;
SmartTerrain smartTerrain;
PositionalDeviceTracker positionalDeviceTracker;
...........
tl;dr:这些类型不再存在,因为不再需要它们。
我将从Vuforia - Migration Guide for Vuforia Engine Unity Projects开始。
一般来说,对于任何软件库,API 在主要版本之间发生变化并非不可能 - 事实上,这种重大变化是发布新主要版本的主要原因之一!
本页记录了 Vuforia 引擎版本 9.8 和版本 10 之间的变化,因为 API 已经发生了根本性的变化。 使用此概述了解本机更改并将现有项目迁移到新的 API。
因此,请阅读要使用的内容或 API 中的更改内容 =>您必须更改代码才能采用的内容 - 或者坚持使用版本 9(如果它适合您并且您不需要最新功能);)
在您的具体情况下
地平面
一些更高级的地平面 API 已更改。 不仅使用上述游戏对象,而且使用其他运行时脚本 API 的应用程序可能必须进行调整。
智能地形追踪器已被移除。 它不再需要手动管理。 因此,在运行时检查地平面支持已经改变。
Vuforia 引擎 9.8:
SmartTerrain smartTerrain = TrackerManager.Instance.GetTracker<SmartTerrain>(); if (smartTerrain == null) Debug.Log("SmartTerrain returned null. GroundPlane not supported on this device.");
Vuforia 引擎 10.0:
if (VuforiaBehaviour.Instance.World.AnchorsSupported == false) Debug.Log("GroundPlane not supported on this device.");
和
设备追踪
对设备跟踪的访问已得到简化,现在可以通过
VuforiaBehaviour.Instance.DevicePoseBehaviour
集中访问。重置设备跟踪
Vuforia 引擎 9.8:
var deviceTracker = TrackerManager.Instance.GetTracker<PositionalDeviceTracker>(); deviceTracker.Reset();
Vuforia 引擎 10.0:
VuforiaBehaviour.Instance.DevicePoseBehaviour.Reset();
注册以更新设备跟踪状态
Vuforia 引擎 9.8:
private void Start() { DeviceTrackerARController.Instance.RegisterDevicePoseStatusChangedCallback(OnDevicePoseStatusChanged); } void OnDevicePoseStatusChanged(Vuforia.TrackableBehaviour.Status status, Vuforia.TrackableBehaviour.StatusInfo statusInfo) { Debug.Log("OnDevicePoseStatusChanged(" + status + ", " + statusInfo + ")"); … }
Vuforia 引擎 10.0:
private void Start() { VuforiaBehaviour.Instance.DevicePoseBehaviour.OnTargetStatusChanged += OnDevicePoseStatusChanged; } void OnDevicePoseStatusChanged(ObserverBehaviour behaviour, TargetStatus targetStatus) { Debug.Log("OnDevicePoseStatusChanged(" + targetStatus.Status + ", " + targetStatus.StatusInfo + ")"); }
启用和禁用设备跟踪
Vuforia 引擎 9.8:
public void ToggleDeviceTracking(bool enableDeviceTracking) { var posDeviceTracker = TrackerManager.Instance.InitTracker<PositionalDeviceTracker>(); if (enableDeviceTracking) posDeviceTracker.Start(); else posDeviceTracker.Stop(); }
Vuforia 引擎 10.0:
public void ToggleDeviceTracking(bool enableDeviceTracking) { VuforiaBehaviour.Instance.DevicePoseBehaviour.enabled = enableDeviceTracking; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.