获取Vuforia AR相机指南针方向



正在试图弄清楚如何获得Vuforia ar摄像头指南方向,即北/南/东/西。有人可以引导我吗?

试图在下面使用,但是cameradevice.incance没有任何属性来获得指南针方向。

在下面尝试从其他Vuforia帖子中尝试查看哪些属性,但也没有任何属性。

// Get the fields
IEnumerable cameraFields = CameraDevice.Instance.GetCameraFields();
// Print fields to device logs    
foreach (CameraDevice.CameraField field in cameraFields) {    
   Debug.Log("Key: " + field.Key + "; Type: " + field.Type);    
}

尝试了以下类似的东西。

GameObject cam;
cam = GameObject.Find("ARCamera");

尝试打印cam.transform.forward,但它给了我(0.0,0.0,1.0(。如果这是正确的方法,您能帮我了解如何从中获得方向吗?

更新:我曾尝试使用vector3.for,正确等的解决方案。但是,无论拿着手机的方向如何,它总是将北部打印为方向。您能指导我这里有什么问题吗?我需要找到用户拿着手机的方向,以在该方向上显示一些兴趣点。

我将此脚本连接到Arcamera(Vuforia(对象本身,并在脚本的开始方法中添加了语句。我也尝试将它们放置在更新方法中,但仍然是相同的行为。

请让我知道您是否需要更多详细信息。

GameObject cam; 
cam = GameObject.Find ("ARCamera"); 
var dir = cam.transform.forward; 
dir.y = 0; 
dir.Normalize (); 
if (Vector3.Angle(dir, Vector3.forward) <= 45.0) { 
    Debug.Log("In Start method.. North"); 
} else if (Vector3.Angle(dir, Vector3.right) <= 45.0) { 
    Debug.Log("In Start method.. East"); 
} else if (Vector3.Angle(dir, Vector3.back) <= 45.0) { 
    Debug.Log("In Start method.. South"); 
} else { 
    Debug.Log("In Start method.. West"); 
}

如果您想在游戏指南针中实现>您可以在此处从AssetStore购买一个。
,但是如果您想免费自行制作它您可以从一个相当基本的一个开始

edit1
这是一个可以帮助

的脚本
GameObject cam; 
cam = GameObject.Find ("ARCamera"); 
    if (cam.transform.eulerAngles.y >= 0 && cam.transform.eulerAngles.y <= 90)
    {
        print("Looking at NORTH");
    }
    else if (cam.transform.eulerAngles.y >= 91 && cam.transform.eulerAngles.y <= 180)
    {
        print("Looking at EAST");
    }
    else if (cam.transform.eulerAngles.y >= 181 && cam.transform.eulerAngles.y <= 270)
    {
        print("Looking at SOUTH");
    }
    else if (cam.transform.eulerAngles.y >= 271 && cam.transform.eulerAngles.y <= 360)
    {
        print("Looking at WEST");
    }   
 }

看起来Unity具有'input.compass'的东西。因此,如果我设置了'input.compass.enabled = true,则在开始跟踪位置并使用input.compass.trueheading之前,它为我提供了电话相机的指导(就欧拉格而言(。/div>

最新更新