我正在遵循udemy的教程,但我发现了一个我无法解决的错误。我的unity版本是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);
}
}
发布于 2019-04-08 08:19:33
它看起来像你在调用时得到的对象
m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_" + (++m_AnchorCounter), result);
与GameObject
的类型不同。您可以尝试将其更改为
myAnchor = m_PositionalDeviceTracker.CreatePlaneAnchor("MyItemAnchor_" + (++m_AnchorCounter), result) as GameObject;
看看这是否解决了你的问题,但我认为它只会变成null。如果需要,您很可能需要以某种方式将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);
}
}
https://stackoverflow.com/questions/55563717
复制相似问题