相机

public class Camera

表示虚拟摄像头,用于确定通过哪个视角查看场景。

如果摄像头属于 ArSceneView,它会自动跟踪来自 ARCore 的摄像头姿势。此外,以下方法会在调用时抛出 UnsupportedOperationException

Node 支持所有其他功能。您可以访问相机的位置和旋转,为相机指定碰撞形状,或向相机添加子项。停用相机会关闭渲染功能。

公共方法

浮点数
浮点数
浮点数
getVerticalFovDegrees()
获取相机的垂直视野范围。
射线
screenPointToRay(浮点数 x、浮点数 y)
计算从相机近平面进入屏幕空间点的一条光线。
无效
setLocalPosition(Vector3 位置)
设置相机的位置。
无效
setLocalRotation四元数旋转)
设置相机的旋转角度。
无效
setParent(NodeParent)
操作不受支持。
无效
setVerticalFovDegrees(浮点数行业 Fov)
设置非 ar 摄像头的垂直视野范围(以度为单位)。
无效
setWorldPosition(Vector3 位置)
设置相机的位置。
无效
setWorldRotation四元数旋转)
设置相机的旋转角度。
Vector3
worldToScreenPointVector3 点)
将点从世界空间转换为屏幕空间。

继承的方法

公共方法

public float getFarClipPlane ()

public float getNearClipPlane ()

public float getVerticalFovDegrees ()

获取相机的垂直视野范围。

如果这是 AR 相机,则它根据 ARCore 中的相机信息计算,并且可能因设备而异。直到 ARCore 会话恢复后的第一帧才会恢复,在这种情况下,系统会抛出 IllegalStateException。

否则,将返回由 setVerticalFovDegrees(float) 设置的值,默认值为 90 度。

抛出
IllegalStateException 如果在 ARCore 恢复后的第一帧之前调用,

public Ray screenPointToRay (float x, float y)

计算从相机近平面进入屏幕空间点的一条光线。屏幕空间采用 Android 设备屏幕坐标:TopLeft = (0, 0) BottomRight =(屏幕宽度、屏幕高度)设备坐标空间不受设备的屏幕方向影响。

参数
x 设备屏幕坐标中的 X 轴位置。
y 设备屏幕坐标中的 Y 轴位置。

public void setLocalPosition (Vector3 position)

设置相机的位置。相机始终为 isTopLevel(),因此它的行为与 setWorldPosition(Vector3) 相同。

如果相机是 ArSceneView 的一部分,则此操作不受支持。相机的位置无法更改,它由 ARCore 相机姿势控制。

参数
position 要应用的职位。

public void setLocalRotation (Quaternionrot)

设置相机的旋转角度。相机始终为 isTopLevel(),因此它的行为与 setWorldRotation(Quaternion) 相同。

如果相机是 ArSceneView 的一部分,则此操作不受支持。无法更改相机的旋转角度,旋转角度由 ARCore 相机姿势控制。

参数
旋转 要应用的旋转角度。

public void setParent (NodeParent parent)

操作不受支持。无法更改摄像头的父项,它始终是场景。

参数
父级 此节点将作为其子节点的新父节点。如果为 null,此节点将与父节点分离。

public void setVerticalFovDegrees (float verticalFov)

设置非 ar 摄像头的垂直视野范围(以度为单位)。如果这是 AR 相机,则 fov 来自 ARCore 且无法设置,因此会抛出异常。默认值为 90 度。

参数
verticalFov
抛出
UnsupportedOperationException 如果这是 AR 相机

public void setWorldPosition (Vector3 position)

设置相机的位置。相机始终为 isTopLevel(),因此它的行为与 setLocalPosition(Vector3) 相同。

如果相机是 ArSceneView 的一部分,则此操作不受支持。相机的位置无法更改,它由 ARCore 相机姿势控制。

参数
position 要应用的职位。

public void setWorldRotation (Quaternion 旋转)

设置相机的旋转角度。相机始终为 isTopLevel(),因此它的行为与 setLocalRotation(Quaternion) 相同。

如果相机是 ArSceneView 的一部分,则此操作不受支持。无法更改相机的旋转角度,旋转角度由 ARCore 相机姿势控制。

参数
旋转 要应用的旋转角度。

public Vector3 worldToScreenPoint (Vector3 point)

将点从世界空间转换为屏幕空间。

当该点位于视口左侧时,X 值为负值;该点位于视口内时,X 值介于 0 和 SceneView 宽度之间;当该点位于视口右侧时,X 值大于宽度。

当该点位于视口下方时,Y 值为负值;当该点在视口内时,Y 值介于 SceneView 和 0 之间;当该点在视口上方时,Y 值会大于该高度。

Z 值始终为 0,因为返回值是 2D 坐标。

参数
point 要转换的世界空间中的点
返回
  • 表示屏幕空间中点的新矢量。