카메라

공개 클래스 Camera

장면을 보는 시각을 결정하는 가상 카메라를 나타냅니다.

카메라가 ArSceneView의 일부인 경우 카메라는 ARCore의 카메라 포즈를 자동으로 추적합니다. 또한 다음 메서드를 호출하면 UnsupportedOperationException이 발생합니다.

Node의 다른 모든 기능이 지원됩니다. 카메라의 위치 및 회전에 액세스하거나 카메라에 충돌 도형을 할당하거나 카메라에 하위 요소를 추가할 수 있습니다. 카메라를 사용 중지하면 렌더링이 사용 중지됩니다.

공개 메서드

float
float
getNearClipPlane() 가져오기
float
getVerticalFovDegrees()
카메라의 수직 시야를 가져옵니다.
레이
screenPointToRay(부동 소수점 수 x, 부동 소수점 수 y)
카메라와 가까운 평면에서 화면 공간의 특정 지점을 통과하는 세계 공간의 광선을 계산합니다.
void
setLocalPosition(Vector3 위치)
카메라의 위치를 설정합니다.
void
setLocalRotation(Quaternion 회전)
카메라 회전을 설정합니다.
void
setParent(NodeParent 상위)
지원되지 않는 작업입니다.
void
setVerticalFovDegrees(float verticalFov)
비 AR 카메라의 수직 시야를 도 단위로 설정합니다.
void
setWorldPosition(Vector3 위치)
카메라의 위치를 설정합니다.
void
setWorldRotation(Quaternion 회전)
카메라 회전을 설정합니다.
벡터3
worldToScreenPoint(Vector3 포인트)
월드 공간의 위치를 화면 공간으로 변환합니다.

상속된 메서드

공개 메서드

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 기기 화면 좌표로, 상위 왼쪽 = (0, 0) BottomRight = (화면 너비, 화면 높이) 기기 좌표 공간은 기기의 방향에 영향을 받지 않습니다.

매개변수
x 기기 화면 좌표의 X 위치
y 기기 화면 좌표의 Y 위치입니다.

public void setLocalPosition (Vector3 위치)

카메라의 위치를 설정합니다. 카메라는 항상 isTopLevel()이므로 setWorldPosition(Vector3)와 동일하게 작동합니다.

카메라가 ArSceneView의 일부인 경우 지원되지 않는 작업입니다. ARCore 카메라 자세로 제어되므로 카메라의 위치를 변경할 수 없습니다.

매개변수
position 적용할 위치입니다.

public void setLocalRotation (Quaternion 회전)

카메라 회전을 설정합니다. 카메라는 항상 isTopLevel()이므로 setWorldRotation(Quaternion)와 동일하게 작동합니다.

카메라가 ArSceneView의 일부인 경우 지원되지 않는 작업입니다. ARCore 카메라 자세로 제어되므로 카메라의 회전을 변경할 수 없습니다.

매개변수
회전 적용할 회전입니다.

public void setParent (NodeParent parent)

지원되지 않는 작업입니다. 카메라의 부모는 변경할 수 없습니다. 항상 장면이기 때문입니다.

매개변수
parent 이 노드의 하위 요소가 될 새 상위 노드입니다. null이면 이 노드가 상위 노드에서 분리됩니다.

public void setVerticalFovDegrees (float verticalFov)

비 AR 카메라의 수직 시야를 도 단위로 설정합니다. AR 카메라인 경우 ARCore에서 초점을 가져오며 설정할 수 없으므로 예외가 발생합니다. 기본값은 90도입니다.

매개변수
verticalFov
예외 처리
지원되지 않는 예외 AR 카메라인 경우

public void setWorldPosition (Vector3 위치)

카메라의 위치를 설정합니다. 카메라는 항상 isTopLevel()이므로 setLocalPosition(Vector3)와 동일하게 작동합니다.

카메라가 ArSceneView의 일부인 경우 지원되지 않는 작업입니다. ARCore 카메라 자세로 제어되므로 카메라의 위치를 변경할 수 없습니다.

매개변수
position 적용할 위치입니다.

public void setWorldRotation (Quaternion 회전)

카메라 회전을 설정합니다. 카메라는 항상 isTopLevel()이므로 setLocalRotation(Quaternion)와 동일하게 작동합니다.

카메라가 ArSceneView의 일부인 경우 지원되지 않는 작업입니다. ARCore 카메라 자세로 제어되므로 카메라의 회전을 변경할 수 없습니다.

매개변수
회전 적용할 회전입니다.

public Vector3 worldToScreenPoint (Vector3 포인트)

월드 공간의 위치를 화면 공간으로 변환합니다.

X 값은 점이 표시 영역 왼쪽에 있을 때 음수 값이며, 점은 표시 영역 내에 있을 때 0과 SceneView 너비 사이, 점이 표시 영역 오른쪽에 있을 때 너비보다 큽니다.

지점이 표시 영역 아래에 있으면 Y 값이 음수, 지점이 표시 영역 내에 있을 때 SceneView의 높이가 0과 높이 사이이고 점이 표시 영역 위에 있을 때의 높이보다 큽니다.

반환 값이 2D 좌표이므로 Z 값은 항상 0입니다.

매개변수
point 변환할 공간
반환 값
  • 화면 공간의 점을 나타내는 새로운 벡터입니다.