Ошибки при обновлении Vuforia в Unity с версии 9 на версию 10

The type or namespace name 'SmartTerrain' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'PositionalDeviceTracker' could not be found (are you missing a using directive or an assembly reference?)

Этих ошибок не было в версии 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;
    ...........
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

тл;др: Эти типы больше не существуют, так как они больше не нужны.


Я бы начал с Vuforia — Руководство по миграции для проектов Unity Vuforia Engine.

В общем, для любой библиотеки программного обеспечения вполне вероятно, что вещи и API меняются между основными версиями - действительно, такое критическое изменение является одной из основных причин для выпуска новой основной версии вообще!

This page documents the changes between Vuforia Engine version 9.8 and version 10 as the API has fundamentally changed. Use this overview to learn about the native changes and for migrating your existing projects to the new API.

Так что прочитайте, что использовать вместо этого или что изменилось в API => что ты нужно изменить в вашем коде, чтобы принять - или придерживайтесь версии 9, если она работает для вас, и вам не нужны новейшие функции;)

В ваших конкретных случаях

Ground Plane

Some more advanced Ground Plane APIs have changed. Apps that were using not just the game objects above, but additional runtime scripting APIs might have to be adapted.

The Smart Terrain Tracker has been removed. It no longer needs to be managed manually. Consequently, checking for Ground Plane support at runtime has changed.

Vuforia Engine 9.8:

SmartTerrain smartTerrain = TrackerManager.Instance.GetTracker<SmartTerrain>();
if (smartTerrain == null)
    Debug.Log("SmartTerrain returned null. GroundPlane not supported on this device.");

Vuforia Engine 10.0:

if (VuforiaBehaviour.Instance.World.AnchorsSupported == false)
    Debug.Log("GroundPlane not supported on this device.");

и

Device Tracking

Access to device tracking has been simplified and is now available centrally through VuforiaBehaviour.Instance.DevicePoseBehaviour.

Resetting Device Tracking

Vuforia Engine 9.8:

var deviceTracker = TrackerManager.Instance.GetTracker<PositionalDeviceTracker>();
deviceTracker.Reset();

Vuforia Engine 10.0:

VuforiaBehaviour.Instance.DevicePoseBehaviour.Reset();

Registering to updates to the device tracking status

Vuforia Engine 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 Engine 10.0:

private void Start()
{
    VuforiaBehaviour.Instance.DevicePoseBehaviour.OnTargetStatusChanged += OnDevicePoseStatusChanged; 
}
void OnDevicePoseStatusChanged(ObserverBehaviour behaviour, TargetStatus targetStatus)
{
    Debug.Log("OnDevicePoseStatusChanged(" + targetStatus.Status + ", " + targetStatus.StatusInfo + ")");
}

Enabling and disabling Device Tracking

Vuforia Engine 9.8:

public void ToggleDeviceTracking(bool enableDeviceTracking)
{
    var posDeviceTracker = TrackerManager.Instance.InitTracker<PositionalDeviceTracker>();
    if (enableDeviceTracking)
        posDeviceTracker.Start();
    else
        posDeviceTracker.Stop();
}

Vuforia Engine 10.0:

public void ToggleDeviceTracking(bool enableDeviceTracking)
{
    VuforiaBehaviour.Instance.DevicePoseBehaviour.enabled = enableDeviceTracking; 
    
}

Привет, я добавил строки, отредактировав вопрос, пожалуйста, посмотрите, ошибки только в части объявления, а не в рабочей части, я думаю, что мне не хватает какого-то файла заголовка или пространства имен... Пожалуйста, посмотрите на линии и скажите мне, что делать ..

rew 16.03.2022 14:37

@rew вы вообще читали ответ и документ по миграции? ;) Вкратце: Эти типы больше не существуют, так как они больше не нужны. -> Итак, что делать: удалить эти поля и реорганизовать код в соответствии со связанной документацией по миграции.

derHugo 16.03.2022 15:33

Другие вопросы по теме