无法将类型`Vuforia.Anchor'隐式转换为'UnityEngine.GameObject'

问题描述 投票:1回答:1

我正在听取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);
    }
}
c# anchor vuforia gameobject
1个回答
0
投票

它看起来像是你打电话时得到的对象

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.