場景

公開課程 場景

場景 Scene 會保留情境圖表,也就是某個場景內容的階層結構。每個場景可以有零個或更多的子節點,而每個節點可以有多個子節點。

場景也支援命中測試,用於偵測 MotionEvent 或 Ray 輕觸的節點。

巢狀類別

Scene.OnPeekTouchListener 傳送觸控事件至情境時,要叫用的介面定義。
Scene.OnTouchListener 傳送觸控事件至情境時,要叫用的介面定義。
Scene.OnUpdateListener 在更新情境之前,系統會立即為每個頁框叫用回呼的介面定義。

欄位

公開靜態最終 EnvironmentalHdrParameters DEFAULT_HDR_PARAMETERS

公用建構函式

情境(SceneView 檢視畫面)
使用指定結構定義建立場景。

公用方法

void
addOnPeekTouchListener (Scene.OnPeekTouchListener onPeekTouchListener)
新增會在叫用 Scene.OnTouchListener 之前呼叫的監聽器。
void
addOnUpdateListener(Scene.OnUpdateListener onUpdateListener)
新增監聽器,以便在更新場景前,每個頁框立即呼叫一次。
相機
getCamera()
取得用來轉譯場景的相機。
節點
getSunlight()
取得預設日光節點。
SceneView
getView()
傳回用來建立情境的 SceneView。
HitTestResult
hitTest(MotionEventMotionEvent)
依據光源命中測試 (其為動作事件的螢幕位置),測試動作事件是否正在與情境中的任何節點互動,並輸出包含最靠近螢幕的節點的 HitTestResult。
HitTestResult
hitTest(Ray 陰影)
測試此光源是否達到場景中的任何節點,並輸出 HitTestResult,其中包含最接近該光源與光源的節點的節點。
ArrayList<HitTestResult>
hitTestAll(Ray 陰影)
測試是否出現光線在情境中出現在任何節點上,並傳回 Hit-Results 清單,其中包含按命中排序的所有節點。
ArrayList<HitTestResult>
hitTestAll(MotionEventMotionEvent)
進行測試,確認動作事件是否觸及情境中的任何節點,並傳回包含命中的所有節點的 HitTestResults 清單,並按距離排序。
void
onAddChild(Node 子項)
void
節點
overlapTest(Node 節點)
使用 getCollisionShape() 來檢查指定節點的衝突形狀是否與情境中任何其他節點的衝突形狀重疊。
ArrayList<節點>
overlapTestAll(Node 節點)
使用 getCollisionShape() 來檢查節點是否與場景中的任何其他節點重疊。
void
removeOnPeekTouchListener (Scene.OnPeekTouchListener onPeekTouchListener)
移除會在叫用 Scene.OnTouchListener 之前呼叫的監聽器。
void
removeOnUpdateListener(Scene.OnUpdateListener onUpdateListener)
在更新場景前,系統會立即呼叫每個頁框一次。
void
setLightEstimated(顏色顏色修正、浮點像素 Intensity)
設定亮度預估值,以調整場景光源和強度。
void
setOnTouchListener(Scene.OnTouchListener onTouchListener)
註冊要在輕觸場景時叫用的回呼。

沿用的方法

欄位

public static final EnvironmentalHdrParameters DEFAULT_HDR_PARAMETERS

公用建構函式

公開 場景 (SceneView 檢視)

使用指定結構定義建立場景。

參數
檢視表

公用方法

public addOnPeekTouchListener (Scene.OnPeekTouchListener onPeekTouchListener)

新增會在叫用 Scene.OnTouchListener 之前呼叫的監聽器。即使已使用手勢,仍會叫用這個事件,因此您可以觀察分派到情境的所有動作事件。即使觸控不在節點上,仍會呼叫此方法,在此情況下,getNode() 將為空值。事件監聽器的新增順序。

參數
onPeekTouchListener 快速查看新增事件監聽器

public addOnUpdateListener (Scene.OnUpdateListener onUpdateListener)

新增監聽器,以便在更新場景前,每個頁框立即呼叫一次。事件監聽器會按照新增順序呼叫。

參數
onUpdateListener 要新增的更新事件監聽器

公開 相機 getCamera ()

取得用來轉譯場景的相機。攝影機是節點類型。

傳回
  • 用來轉譯情境的相機

公開 節點 getSunlight ()

取得預設日光節點。

傳回
  • 用於照顧場景的陽光節點

publicSceneViewgetView()

傳回用來建立情境的 SceneView。

public HitTestResult hitTest (MotionEventMotionEvent)

依據光源命中測試 (其為動作事件的螢幕位置),測試動作事件是否正在與情境中的任何節點互動,並輸出包含最靠近螢幕的節點的 HitTestResult。

參數
動作事件 測試時使用的動作事件
傳回
  • 結果包含動作事件命中的第一個節點 (可以是空值),以及動作事件在世界空間中遇到節點的位置資訊。

publicHitTestResult

測試此光源是否達到場景中的任何節點,並輸出 HitTestResult,其中包含最接近該光源與光源的節點的節點。

參數
Ray 測試時使用的光源
傳回
  • 結果包含由光源命中的第一個節點 (可以是空值),以及光源在世界空間中到達節點的位置相關資訊。

public ArrayList<HitTestResult> hitTestAll (Ray 陰影)

測試是否出現光線在情境中出現在任何節點上,並傳回 Hit-Results 清單,其中包含按命中排序的所有節點。

參數
Ray 用於測試的光源。
傳回
  • 填入每個命中命中的 HitTestResult。如果未執行任何節點,請將此欄位留空。

publicArrayList<HitTestResult> hitTestAll (MotionEventMotionEvent)

進行測試,確認動作事件是否觸及情境中的任何節點,並傳回包含命中的所有節點的 HitTestResults 清單,並按距離排序。

參數
動作事件 用於測試的動作事件。
傳回
  • 填入每個命中命中的 HitTestResult。如果未執行任何節點,請將此欄位留空。

public onAddChild (Node children)

參數
兒童

public void onRemoveChild (節點子項)

參數
兒童

公開 節點 overlapTest (節點 節點)

使用 getCollisionShape() 來檢查指定節點的衝突形狀是否與情境中任何其他節點的衝突形狀重疊。用於測試的節點不需要啟用。

參數
個節點 用於測試的節點。
傳回
  • 與測試節點重疊的節點。如果沒有與測試節點重疊的節點,這會為空值。如有多個節點與測試節點重疊,可以是任一節點。
另請參閱

public ArrayList<Node> overlapTestAll (Node 節點)

使用 getCollisionShape() 來檢查節點是否與場景中的任何其他節點重疊。用於測試的節點不需啟用。

參數
個節點 用於測試的節點。
傳回
  • 與測試節點重疊的所有節點清單。如果沒有與測試節點重疊的節點,清單就會是空白的。
另請參閱

public removeOnPeekTouchListener (Scene.OnPeekTouchListener onPeekTouchListener)

移除會在叫用 Scene.OnTouchListener 之前呼叫的監聽器。即使已使用手勢,仍會叫用這個事件,因此您可以觀察分派到場景的所有動作事件。即使觸控不在節點上,仍會呼叫此方法,在此情況下,getNode() 將為空值。

參數
onPeekTouchListener 即可快速取消刪除

public removeOnUpdateListener (Scene.OnUpdateListener onUpdateListener)

在更新場景前,系統會立即呼叫每個頁框一次。

參數
onUpdateListener 要移除的更新監聽器

public setLightEstimated (顏色color 更正、浮點像素 Intensity)

設定亮度預估值,以調整場景光源和強度。轉譯後的光源會結合這些值的值,以及光源的顏色和強度。以「色彩校正」和「PixelIntensity」為 1 的值,代表未對光源設定進行任何變更。

供內部的 AR 場景使用,依據 ARCore 的值來調整亮度。AR 情境會自動呼叫此函式,可能會覆寫其他設定。在大部分情況下,您不需要明確呼叫。

參數
色彩校正 調整場景的燈光顏色。
像素強度 調整場景的光源強度。

public setOnTouchListener (Scene.OnTouchListener onTouchListener)

註冊要在輕觸場景時叫用的回呼。如果觸控事件分派到情境中的節點,如果沒有觸發該事件,系統就會叫用回呼。即使觸控不在節點上,仍會呼叫此方法,在此情況下,getNode() 會是空值。

參數
onTouchListener 要附加的觸控事件監聽器