Не удается неявно преобразовать тип `Vuforia.Привязка’ к ‘UnityEngine.GameObject’

#c# #anchor #vuforia #gameobject

#c# #привязка #vuforia #gameobject

Вопрос:

Я следую руководству от udemy, но обнаружил ошибку, которую не могу решить. Моя версия unity — 2018.2.21f1, а версия vuforia — 7.5.26. Это сообщение, которое он публикует: Не удается неявно преобразовать ‘Vuforia.Привязка’ к ‘UnityEngine.GameObject’. Ошибка в строке «myAnchor = m_Positional …». Заранее спасибо :/

// Создать и разместить новый элемент

 private void PlaceNewItem(HitTestResult result)
{
    m_PlaneFinder.gameObject.SetActive(true);
    GameObject anchorGO = null;
    GameObject myAnchor = null;
    if (m_PositionalDeviceTracker != null amp;amp; m_PositionalDeviceTracker.IsActive)
    {
        myAnchor = m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_"   (  m_AnchorCounter), result);

        // myAnchor.name = "PlaneAnchor"   (m_AnchorCounter);
        anchorGO = new GameObject();
        anchorGO.transform.position = result.Position;
        anchorGO.transform.rotation = result.Rotation;
        anchorGO.name = "PlaneAnchor"   (m_AnchorCounter);
    }
}
  

Ответ №1:

Это похоже на объект, который вы получаете при вызове

 m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_"   (  m_AnchorCounter), result);
  

Имеет другой тип, чем GameObject . Вы могли бы попробовать изменить его на

 myAnchor = m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_"   (  m_AnchorCounter), result) as GameObject;
  

И посмотрите, решит ли это вашу проблему, но я думаю, что она станет нулевой. Скорее всего, вам нужно каким-то образом преобразовать Vuforia.При необходимости привязать объект к вашему GameObject.
В противном случае вы могли бы попробовать использовать динамический:

 private void PlaceNewItem(HitTestResult result)
{
    m_PlaneFinder.gameObject.SetActive(true);
    GameObject anchorGO = null;
    dynamic myAnchor = null;
    if (m_PositionalDeviceTracker != null amp;amp; m_PositionalDeviceTracker.IsActive)
    {
        myAnchor = m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_"   (  m_AnchorCounter), result);

        // myAnchor.name = "PlaneAnchor"   (m_AnchorCounter);
        anchorGO = new GameObject();
        anchorGO.transform.position = result.Position;
        anchorGO.transform.rotation = result.Rotation;
        anchorGO.name = "PlaneAnchor"   (m_AnchorCounter);
    }
}