Не удается неявно преобразовать тип `Vuforia.Anchor 'в' UnityEngine.GameObject ' - PullRequest
1 голос
/ 08 апреля 2019

Я слежу за учебником от udemy, но обнаружил ошибку, которую не могу решить.Моя версия единства - 2018.2.21f1, а версия vuforia - 7.5.26.Это сообщение, которое он публикует: не может неявно преобразовать Vuforia.Anchor в 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 && 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 Ответ

0 голосов
/ 08 апреля 2019

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

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

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

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

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

private void PlaceNewItem(HitTestResult result)
{
    m_PlaneFinder.gameObject.SetActive(true);
    GameObject anchorGO = null;
    dynamic myAnchor = null;
    if (m_PositionalDeviceTracker != null && 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);
    }
}
...