我正在听取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);
}
}
它看起来像是你打电话时得到的对象
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);
}
}