Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 轻触以在ARCore中使用Unity选择特定平面_Unity3d_Arcore - Fatal编程技术网

Unity3d 轻触以在ARCore中使用Unity选择特定平面

Unity3d 轻触以在ARCore中使用Unity选择特定平面,unity3d,arcore,Unity3d,Arcore,我试图通过只渲染一个平面而不是所有检测到的平面来修改ARCore示例Andy placement应用程序。我希望通过点击要渲染的平面来实现这一点。这是我试过的 protected override void OnEndManipulation(轻触手势) { 如果(手势已取消) { 返回; } //如果手势是针对一个现有的对象,我们就完成了。 if(signature.TargetObject!=null) { 返回; } //对玩家触摸的位置进行光线投射以搜索飞机。 可追踪打击; Tracka

我试图通过只渲染一个平面而不是所有检测到的平面来修改ARCore示例Andy placement应用程序。我希望通过点击要渲染的平面来实现这一点。这是我试过的

protected override void OnEndManipulation(轻触手势)
{
如果(手势已取消)
{
返回;
}
//如果手势是针对一个现有的对象,我们就完成了。
if(signature.TargetObject!=null)
{
返回;
}
//对玩家触摸的位置进行光线投射以搜索飞机。
可追踪打击;
TrackableHitFlags raycastFilter=TrackableHitFlags.PlaneWithinInfinity | TrackableHitFlags.PlaneWithinPolygon;
if(Frame.Raycast(signature.StartPosition.x,signature.StartPosition.y,raycastFilter,out-hit))
{
Debug.Log(“输入hit if条件”);
//使用命中姿势和相机姿势检查命中测试是否来自
//如果是平面的背面,则无需创建锚定。
如果((检测到hit.Trackable平面)&&
向量3.Dot(FirstPersonCamera.transform.position-hit.Pose.position,
hit.Pose.rotation*矢量3.up)<0)
{
//var和yobject=实例化(和yprefab,hit.Pose.position,hit.Pose.rotation);
Log(“命中当前检测平面的背面”);
}
其他的
{                
如果(PlaneFixed为false)
{
foreach(DetectedPlaneGenerator.instance.PLANES中的游戏对象平面)//RK
{
//问题就在这里!如何获得正确的类型转换?
如果(hit.Trackable是平面)
{
Debug.Log(“选择的平面”);
PlaneFixed=true;
FixPositionButton.gameObject.SetActive(true);
}
其他的
{
plane.SetActive(假);
}
}
}
}
}
}
问题是我无法在游戏对象(在DetectedPlaneGenerator.cs中创建的平面)和DetectedPlane对象(使用PlaneWithinInfinity | PlaneWithinPolygon光线过滤器通过点击返回.Trackable)之间获得正确匹配

我还看到了尝试将“标记”与DetectedPlaneVisualizer()关联的方法。然而,我看到这也涉及使用游戏对象的飞机。如何匹配游戏对象和Hit.Trackable(DetectedPlane对象)以识别刚刚点击的特定平面