相機

公開類別 相機

代表虛擬相機,用於判斷觀看場景的視角。

如果相機是 ArSceneView 的一部分,則相機會自動從 ARCore 追蹤相機的姿勢。此外,下列方法會在呼叫時擲回 UnsupportedOperationException

Node 中的所有其他功能都受支援。可以存取相機的位置和旋轉角度,為相機指派碰撞形狀或新增子項。停用攝影機會關閉轉譯功能。

公用方法

浮點值
浮點值
浮點值
getVerticalFovDegrees()
取得相機的垂直視野。
Ray
screenPointToRay(浮點 x、浮點 y)
計算世界空間中從相機近距離觀看到整個光源點的光源。
void
setLocalPosition(Vector3位置)
設定相機的位置。
void
setLocalRotation(四元數旋轉)
設定相機的旋轉角度。
void
setParent (NodeParent 父項)
不支援的作業。
void
setVerticalFovDegrees (浮點垂直 Fov)
設定非陣列相機的垂直視野 (以度為單位)。
void
setWorldPosition(Vector3位置)
設定相機的位置。
void
setWorldRotation (「Quarernion」旋轉)
設定相機的旋轉角度。
Vector3
worldToScreenPoint (Vector3 點)
將世界空間的點轉換成螢幕空間。

沿用的方法

公用方法

public float getFarClipPlane ()

public float getNearClipPlane ()

public float getVerticalFovDegrees ()

取得相機的垂直視野。

如果這是 AR 相機,它是根據 ARCore 的相機資訊計算而得,且可能會因裝置而異。在 ARCore 工作階段恢復後,第一個影格才會重新啟用,因為在這個情況下,系統會擲回 IllegalStateException。

否則,系統會傳回 setVerticalFovDegrees(float) 設定的值,預設值為 90 度。

擲回
IllegalStateException 在 ARCore 重新啟用前,第一個影格的呼叫開始前

publicRayscreenPointToRay(float x、float y)

計算世界空間中從相機近距離觀看到整個光源點的光源。螢幕空間位於 Android 裝置螢幕座標:TopLeft = (0, 0) BottomRight = (Screen Width, Screen Height) 裝置座標空間不受裝置的方向影響。

參數
x 裝置螢幕座標中的 X 位置。
裝置螢幕座標中的 Y 位置。

public setLocalPosition (Vector3 位置)

設定相機的位置。相機一律為 isTopLevel(),因此其行為與 setWorldPosition(Vector3) 相同。

如果相機是 ArSceneView 的一部分,系統不支援這項操作。無法變更相機的位置,由 ARCore 相機姿勢控制。

參數
position 要套用的位置。

public void setLocalRotation (Quaternion 輪替)

設定相機的旋轉角度。相機一律為 isTopLevel(),因此其行為與 setWorldRotation(Quaternion) 相同。

如果相機是 ArSceneView 的一部分,系統不支援這項操作。無法變更相機的旋轉角度,可由 ARCore 相機的姿勢控制。

參數
輪替 要套用的旋轉效果。

public setParent (NodeParent 父項)

不支援的作業。相機的家長無法變更,一律為場景。

參數
父項 這個節點所屬的子項的新父項。如果為空值,此節點就會從其上層卸離。

public setVerticalFovDegrees (float verticalFov)

設定非陣列相機的垂直視野 (以度為單位)。如果這是 AR 相機,則焦點來自 ARCore,而且無法設定,因此系統會擲回例外狀況。預設值為 90 度。

參數
verticalFov
擲回
SupportedOperationException 如果是 AR 相機

public setWorldPosition (Vector3 位置)

設定相機的位置。相機一律為 isTopLevel(),因此其行為與 setLocalPosition(Vector3) 相同。

如果相機是 ArSceneView 的一部分,系統不支援這項操作。無法變更相機的位置,由 ARCore 相機姿勢控制。

參數
position 要套用的位置。

public setWorldRotation (Quaternion 輪替)

設定相機的旋轉角度。相機一律為 isTopLevel(),因此其行為與 setLocalRotation(Quaternion) 相同。

如果相機是 ArSceneView 的一部分,系統不支援這項操作。無法變更相機的旋轉角度,可由 ARCore 相機的姿勢控制。

參數
輪替 要套用的旋轉效果。

public Vector3 worldToScreenPoint (Vector3 點)

將世界空間的點轉換成螢幕空間。

點在可視區域左側時,X 值會是負值,如果點位於可視區域內,X 的值就是 SceneView 的寬度;如果點位於可視區域右側,這個值就會大於寬度。

當 Y 值在可視區域下方時,Y 值會是負值,介於 0 到 SceneView 的高度時,如果該點位於可視區域內,則 Y 值大於高度。

Z 值一律為 0,因為傳回值是 2D 座標。

參數
世界的轉換點
傳回
  • 一個新向量,代表畫面空間中的點。