我有一个处理AR的项目,所以我在Unity中使用ARFoundation。一切正常,直到我想将3D对象放置在屏幕左侧。我尝试了许多解决方案,但没有一个起作用。 我尝试采用屏幕的宽度和高度并对其进行更改,然后将对象的位置设置为它们的位置,但这没有用。
我该怎么办?
答案 0 :(得分:0)
了解您所处的空间至关重要。
屏幕位置与场景中的普通3D尺寸不同。为了交换头寸,您需要使用https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html和https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html。
例如,您可以有一个框,其变换为0.0.0,但根据您所看的位置和角度,它的变换保持不变,但*屏幕位置会发生变化。
使用WorldToScreenPoint可以告诉您场景中的对象在屏幕(2D)上的位置,而ScreenToWorldPoint则相反(您从屏幕上给它2D,然后在3D中给您该位置)。