節點

公開類別 Node
已知的直接子類別
已知間接子類別

「節點」代表場景圖中的階層轉換。當中可包含算繪引擎的可轉譯內容。

每個節點都可以包含任意數量的子節點,以及一個父項。父項可以是其他節點或情境。

巢狀類別

Node.LifecycleListener 發生節點生命週期事件時叫用的介面定義定義。
Node.OnTapListener 使用者輕觸節點時要叫用的介面定義。
Node.OnTouchListener 將觸控事件分派至這個節點時要叫用的回呼定義。
Node.TransformChangedListener 變更節點轉換時要叫用的介面定義。

公用建構函式

Node()
建立不含父項的節點。

公用方法

void
addLifecycleListener (Node.LifecycleListener LifecycleListener)
新增監聽器,以便在發生節點生命週期事件時呼叫。
void
addTransformChangedListener(Node.TransformChangedListenertransformChangedListener)
新增監聽器,以便在節點和轉換發生變化時呼叫。
void
callOnHierarchy(Consumer<Node>consumer)
掃遍階層,並在每個節點 (包括這個節點) 上呼叫方法。
節點
findInHierarchy(述詞<節點> 條件)
掃遍階層,以找出符合特定條件的第一個節點 (包括這個節點)。
最終 Vector3
getBack()
取得這個節點的世界空間返迴向量 (+z)。
CollisionShape
getCollisionShape()
取得用於與這個節點衝突的形狀。
最終 Vector3
getDown()
取得這個節點的世界空間向下向量 (-y)。
最終 Vector3
getForward()
取得這個節點的世界空間向前向量 (-z)。
最終 Vector3
getLeft()
取得這個節點的世界空間左側向量 (-x)。
淺色
getLight()
取得目前可變動的光源。
最終 Vector3
getLocalPosition()
取得相對於其父項 (本機空間) 的節點位置副本。
最終 四元數
getLocalRotation()
取得相對於其父項 (本機空間) 的節點旋轉副本。
最終 Vector3
getLocalScale()
取得根據父項 (本機空間) 縮放的節點副本。
最終 String
getName()
傳回節點名稱。
最終節點
getParent()
傳回這個節點的父項。
可轉譯
getRenderable()
取得此節點可顯示的可轉譯項目。
最終 Vector3
getRight()
取得這個節點的世界空間右側向量 (+x)。
最終場景
getScene()
傳回這個節點所屬的情境,如果不是任何場景的一部分,則傳回空值。
最終 Vector3
getUp()
取得此節點的世界空間向量 (+y)。
最終 Vector3
getWorldPosition()
取得節點世界空間位置的副本。
最終 四元數
getWorldRotation()
取得節點世界空間旋轉的副本。
最終 Vector3
getWorldScale()
取得節點全球空間規模的副本。
最終布林值
isActive()
如果節點處於啟用狀態,則傳回「是」。
最終布林值
isDescendantOf (NodeParent 祖系)
檢查特定節點父項是否是週期性的節點。
最終布林值
isEnabled()
取得這個節點的啟用狀態。
布林
isTopLevel()
如果這個節點是頂層,則傳回「是」。
最終 Vector3
localToWorldDirection(Vector3 方向)
將這個節點的本機空間方向轉換為世界空間。
最終 Vector3
localToWorldPoint (Vector3 點)
將此節點的本機空間中的點轉換為世界空間。
void
onActivate()
在這個節點啟用時處理。
void
onDisable()
在這個節點變為停用時處理。
布林
onTouchEvent (HitTestResult HitTestResult、MotionEventMotionEvent)
在輕觸這個節點時處理。
void
onTransformChange(Node originingNode)
在這個節點的轉換變更時處理。
void
onUpdate(FrameTime frameTime)
在更新這個節點時處理。
void
removeLifecycleListener(Node.LifecycleListener LifecycleListener)
移除會在發生節點生命週期事件時呼叫的事件監聽器。
void
removeTransformChangedListener(Node.TransformChangedListenertransformChangedListener)
移除當節點的轉換作業變更時,系統會呼叫的事件監聽器。
void
setCollisionShape (CollisionShape collisionShape)
設定用於偵測這個 Node 是否有衝突的形狀。
Final void
setEnabled (已啟用布林值)
設定這個節點的啟用狀態。
void
setLight(淺色)
設定要顯示的 Light
void
setLocalPosition(Vector3位置)
設定這個節點相對於其父項 (本機空間) 的位置。
void
setLocalRotation(四元數旋轉)
設定這個節點相對於其父項 (本機空間) 的旋轉方式。
void
setLocalScale (Vector3 縮放)
設定這個節點相對於其父項 (本機空間) 的縮放比例。
Final void
setLookDirection(Vector3 LookDirection)
設定節點在世界空間中查詢的方向。
Final void
setLookDirection (Vector3 LookDirection、Vector3 upDirection)
設定節點在世界空間中查詢的方向。
Final void
setName (String 名稱)
設定這個節點的名稱。
void
setOnTapListener(Node.OnTapListener onTapListener)
註冊輕觸此節點時叫用的回呼。
void
setOnTouchListener (Node.OnTouchListener onTouchListener)
註冊在將觸控事件分派至這個節點時叫用的回呼。
void
setParent(NodeParent 父項)
變更這個節點的父項節點。
void
setRenderable(可轉譯)
設定此節點顯示的 Renderable
void
setWorldPosition(Vector3位置)
設定這個節點的世界空間位置。
void
setWorldRotation (「Quarernion」旋轉)
設定這個節點的世界空間旋轉。
void
setWorldScale(Vector3 縮放)
設定這個節點的世界空間縮放比例。
字串
最終 Vector3
worldToLocalDirection (Vector3 方向)
將方向從世界空間轉換成此節點的本機空間。
最終 Vector3
worldToLocalPoint(Vector3 點)
將世界空間中的點轉換為這個節點的本機空間。

保護方法

最終布林值
canAddChild (Node 子項,StringBuilder failedReason)
Final void
onAddChild (Node 子項)
Final void

沿用的方法

公用建構函式

公開 節點 ()

建立不含父項的節點。

公用方法

public addLifecycleListener (Node.LifecycleListener LifeListener)

新增監聽器,以便在發生節點生命週期事件時呼叫。事件監聽器的新增順序。

參數
LifecycleListener

public addTransformChangedListener (Node.TransformChangedListenertransformChangedListener)

新增監聽器,以便在節點和轉換發生變化時呼叫。

參數
transformChangedListener

public callOnHierarchy (Consumer<Node>consumer)

掃遍階層,並在每個節點 (包括這個節點) 上呼叫方法。遍歷是深度。

參數
消費者 在每個節點上呼叫的方法

公開 節點 findInHierarchy (述詞<節點> 條件)

掃遍階層,以找出符合特定條件的第一個節點 (包括這個節點)。達成述詞後,週遊就會消失。遍歷是深度。

參數
條件 請定義要搜尋的節點條件。
傳回
  • 符合述詞條件的第一個節點,否則會傳回空值

公開最終版 Vector3 getBack ()

取得這個節點的世界空間返迴向量 (+z)。

傳回
  • 代表世界空間中節點返回方向的新向量

公開 CollisionShape getCollisionShape ()

取得用於與這個節點衝突的形狀。如果形狀為空值且設定了 setRenderable(Renderable),則會使用 getCollisionShape() 偵測 Node 的衝突。

傳回
  • 代表幾何圖形 (例如球框、箱子、外框色調)。

公開最終 Vector3 getDown ()

取得這個節點的世界空間向下向量 (-y)。

傳回
  • 一個新向量,代表了世界空間中的節點向下方向

最終 Vector3 getForward ()

取得這個節點的世界空間向前向量 (-z)。

傳回
  • 代表向量空間中向前向節點的新向量

最終最終 Vector3 getLeft ()

取得這個節點的世界空間左側向量 (-x)。

傳回
  • 一個新向量,代表了世界空間中的節點方向

public 淺色 getLight ()

取得目前可變動的光源。

public 最終版 Vector3 getLocalPosition ()

取得相對於其父項 (本機空間) 的節點位置副本。如果 isTopLevel() 為 true,則與 getWorldPosition() 相同。

傳回
  • 代表節點和本機空間位置的新向量

最終最終 Quaternion getLocalRotation ()

取得相對於其父項 (本機空間) 的節點旋轉副本。如果 isTopLevel() 為 true,則與 getWorldRotation() 相同。

傳回
  • 代表節點和本機空間旋轉的新的四元數

公開最終 Vector3 getLocalScale ()

取得根據父項 (本機空間) 縮放的節點副本。如果 isTopLevel() 為 true,則與 getWorldScale() 相同。

傳回
  • 代表節點和本機空間比例的新向量
另請參閱

最終 字串 getName ()

傳回節點名稱。預設值為「Node」(節點)。

公開最終 節點 getParent ()

傳回這個節點的父項。如果這個 Node 有父項,且該父項是 NodeNode 子類別,則此函式會傳回父項為 Node。如果父項是 Scene,則傳回空值,請改用 getScene() 擷取父項。

傳回
  • 父項為 Node (如果父項為 Node)。

公開 Renderable getRenderable ()

取得此節點可顯示的可轉譯項目。

傳回
  • 此節點可顯示的顯示

公開最終 Vector3 getRight ()

取得這個節點的世界空間右側向量 (+x)。

傳回
  • 代表向量空間中最新節點方向的新向量

公開最終 場景 getScene ()

傳回這個節點所屬的情境,如果不是任何場景的一部分,則傳回空值。如果節點的最高階級為 Scene,則節點是場景的一部分

最終 Vector3 getUp ()

取得此節點的世界空間向量 (+y)。

傳回
  • 代表向量空間中最新節點方向的新向量

public 最終版 Vector3 getWorldPosition ()

取得節點世界空間位置的副本。

傳回
  • 代表節點世界空間位置的新向量

最終最終 Quaternion getWorldRotation ()

取得節點世界空間旋轉的副本。

傳回
  • 代表節點與世界空間旋轉的新的四元數

公開最終 Vector3 getWorldScale ()

取得節點全球空間規模的副本。如果節點偏移,則精確度會遺失。

傳回
  • 代表節點世界世界規模的新向量
另請參閱

公開最終布林值 isActive ()

如果節點處於啟用狀態,則傳回「是」。如果節點符合下列所有條件,系統就會將其視為使用中:

  • 節點是場景的一部分。
  • 節點的父項已啟用。
  • 已啟用節點。
有效的節點具備下列行為:

傳回
  • 節點的有效狀態

最終最終布林值 isDescendantOf (NodeParent 祖系)

檢查特定節點父項是否是週期性的節點。

參數
祖系 要檢查的節點父項
傳回
  • 如果節點是此節點的上階,則為 true

公開最終布林值 isEnabled ()

取得這個節點的啟用狀態。請注意,如果節點不在情境中或其父項無效,可能會啟用節點,但依然處於停用狀態。

傳回
  • 節點的啟用狀態。
另請參閱

public 布林值 isTopLevel ()

如果這個節點是頂層,則傳回「是」。如果節點沒有父項,或父項為情境,則系統會將節點視為頂層。

傳回
  • 如果節點頂層,則傳回 true

公開最終 Vector3 localToWorldDirection (Vector3 方向)

將這個節點的本機空間方向轉換為世界空間。不會影響節點的位置或規模。

參數
方向 要轉換的當地空間方向
傳回
  • 代表世界空間方向的新向量

public final Vector3 localToWorldPoint (Vector3 點)

將此節點的本機空間中的點轉換為世界空間。

參數
要轉換的當地空間
傳回
  • 代表世界空間點的新向量

public onActivate ()

在這個節點啟用時處理。節點已啟用,且在情境中,以及其父項為有效狀態。

覆寫即可在執行節點時,執行需要執行的任何設定。

另請參閱

public onDisable ()

在這個節點變為停用時處理。如果節點已停用、不屬於場景的一部分,或其父項無效,節點就會處於閒置狀態。

覆寫即可在執行節點停用時執行任何設定。

另請參閱

public 布林值 onTouchEvent (HitTestResult HitTestResult、MotionEventMotionEvent)

在輕觸這個節點時處理。

覆寫以執行輕觸這個節點時應發生的邏輯。觸控事件的傳播方式與 Android 檢視畫面的傳播方式相同。只有在節點處於啟用狀態時,才會呼叫此方法。

發生 ACTION_DOWN 事件時,表示手勢的起點。ACTION_UP 或 ACTION_CANCEL 代表手勢結束時。手勢啟動後,系統會執行下列動作:

  • 將觸控事件分派給 hitTest(MotionEvent) 偵測到的節點。
  • 如果節點未耗用事件,請透過節點的父項向上遞迴並分派觸控事件,直到其中一個節點消耗該事件。
  • 如果沒有任何節點耗用該事件,系統會忽略手勢,且屬於手勢的後續事件不會傳遞至任何節點。
  • 如果其中一個節點消耗了事件,則該節點將會耗用該手勢日後的所有觸控事件。
將觸控事件分派至節點時,會先將事件傳遞至節點的 Node.OnTouchListener。如果 Node.OnTouchListener 未處理事件,系統會將該事件傳遞至 onTouchEvent(HitTestResult, MotionEvent)

參數
HitTestResult 代表已輕觸的節點,以及觸控點的位置。在 ACTION_DOWN 事件中,getNode() 一律會是這個節點或其子項。在其他事件上,觸控可能已移動,導致 getNode() 變更 (或可能是空值)。
動作事件 動作事件。
傳回
  • 如果事件已處理,則傳回 True,否則傳回 False。

public onTransformChange (節點來源節點)

處理這個節點的轉換變更時,會處理。

來源節點是階層中最頂層的節點,可觸發這個節點變更。它一律會是同一節點或其其中一個 #。

參數
來源節點 觸發這個節點的節點;

public onUpdate (FrameTime frameTime)

在更新這個節點時處理。一個節點會在轉譯每個影格前更新。只有在節點處於啟用狀態時,才會呼叫此方法。

覆寫以執行每個頁框所需的更新。

參數
frametime 提供目前畫格的時間資訊

public removeLifecycleListener (Node.LifecycleListener LifecycleListener)

移除會在發生節點生命週期事件時呼叫的事件監聽器。

參數
LifecycleListener

public removeTransformChangedListener (Node.TransformChangedListenertransformChangedListener)

移除當節點的轉換作業變更時,系統會呼叫的事件監聽器。

參數
transformChangedListener

public setCollisionShape (CollisionShape collisionShape)

設定用於偵測這個 Node 是否有衝突的形狀。如未設定形狀且已設定 setRenderable(Renderable),系統會使用 getCollisionShape() 偵測 Node 的衝突。

參數
CollisionShape 代表幾何圖形 (例如球體、箱子、凸輪)。如果為空值,系統會移除這個節點的現有衝突型態。

public final final void setEnabled (已啟用布林值)

設定這個節點的啟用狀態。請注意,如果節點不在情境中或其父項無效,可能會啟用節點,但依然處於停用狀態。

參數
已啟用 節點的啟用新狀態
另請參閱

public setLight (Light Light)

設定要顯示的 Light。如要使用,請先使用 Light.Builder 建立 Light。設定您重視的參數,然後使用此函式將其附加至節點。節點可能有可轉譯和淺色,或僅做為 Light

參數
燈具 要轉譯的 Light 屬性,傳遞空值即可移除光源。

public setLocalPosition (Vector3 位置)

設定這個節點相對於其父項 (本機空間) 的位置。如果 isTopLevel() 為 true,則與 setWorldPosition(Vector3) 相同。

參數
position 要套用的位置。
另請參閱

public void setLocalRotation (Quaternion 輪替)

設定這個節點相對於其父項 (本機空間) 的旋轉方式。如果 isTopLevel() 為 true,則與 setWorldRotation(Quaternion) 相同。

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

public setLocalScale (Vector3 縮放)

設定這個節點相對於其父項 (本機空間) 的縮放比例。如果 isTopLevel() 為 true,則與 setWorldScale(Vector3) 相同。

參數
的保護 要套用的縮放比例。
另請參閱

public final final void setLookDirection (Vector3 LookDirection)

設定節點在世界空間中查詢的方向。呼叫後,getForward() 會符合傳入的方向。世界空間向上 (0、1、0) 將用於決定節點在方向上的方向。

參數
LookDirection 代表世界空間中所需方向的向量

public final final void setLookDirection (Vector3 LookDirection、Vector3 upDirection)

設定節點在世界空間中查詢的方向。呼叫後,getForward() 會符合傳入的方向。向上方向決定節點的方向方向。無法朝向 (方向) 表示方向和向上方向,否則螢幕方向無效。

參數
LookDirection 代表世界空間中所需看法的向量
向上方向 代表使用的有效向上向量的向量,例如 Vector3.up()

public final final void setName (String name)

設定這個節點的名稱。可使用名稱找到節點。多個節點的名稱可能會相同,在這種情況下,呼叫 findByName(String) 會傳回具有指定名稱的第一個節點。

參數
名稱 節點的名稱。

public setOnTapListener (Node.OnTapListener onTapListener)

註冊輕觸此節點時叫用的回呼。如有已註冊的回呼,觸控事件就不會以此節點的父項為泡泡。如果 Node.onTouchEvent 遭到覆寫,且未呼叫 Super.onTouchEvent,就不會進行輕觸。

參數
onTapListener
另請參閱

public setOnTouchListener (Node.OnTouchListener onTouchListener)

註冊在將觸控事件分派至這個節點時叫用的回呼。觸控事件的傳播方式與 Android 檢視畫面的傳播方式相同。只有在節點處於啟用狀態時,才會呼叫此方法。

發生 ACTION_DOWN 事件時,表示手勢的起點。ACTION_UP 或 ACTION_CANCEL 代表手勢結束時。手勢啟動後,系統會執行下列動作:

  • 將觸控事件分派給 hitTest(MotionEvent) 偵測到的節點。
  • 如果節點未耗用事件,請透過節點的父項向上遞迴並分派觸控事件,直到其中一個節點消耗該事件。
  • 如果沒有任何節點耗用該事件,系統會忽略手勢,且屬於手勢的後續事件不會傳遞至任何節點。
  • 如果其中一個節點消耗了事件,則該節點將會耗用該手勢日後的所有觸控事件。
將觸控事件分派至節點時,會先將事件傳遞至節點的 Node.OnTouchListener。如果 Node.OnTouchListener 未處理事件,系統會將該事件傳遞至 onTouchEvent(HitTestResult, MotionEvent)

參數
onTouchListener
另請參閱

public setParent (NodeParent 父項)

變更這個節點的父項節點。如果設為空值,系統會從這個節點卸離這個節點。這個節點的本機位置、旋轉和比例將保持不變。因此,這個節點的世界位置、旋轉和比例可能因父項變更而不同。

父項可以是另一個 NodeScene。如果是情境,系統會將此 Node 視為頂層。getParent() 會傳回空值,而 getScene() 會傳回情境。

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

public void setRenderable (可轉譯可轉譯)

設定此節點顯示的 Renderable。如未設定 setCollisionShape(CollisionShape),系統會使用 getCollisionShape() 偵測此 Node 的衝突。

參數
可轉譯 通常是 3D 模型。如果為空值,系統將移除這個節點的現有可轉譯內容。

public setWorldPosition (Vector3 位置)

設定這個節點的世界空間位置。

參數
position 要套用的位置。
另請參閱

public setWorldRotation (Quaternion 輪替)

設定這個節點的世界空間旋轉。

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

public setWorldScale (Vector3 縮放)

設定這個節點的世界空間縮放比例。

參數
的保護 要套用的縮放比例。
另請參閱

publicStringtoString()

公開最終 Vector3 worldToLocalDirection (Vector3 方向)

將方向從世界空間轉換成此節點的本機空間。不會影響節點的位置或規模。

參數
方向 如何在世界空間中完成轉換
傳回
  • 代表本機空間方向的新向量

項公開最終版 Vector3 worldToLocalPoint (Vector3 點)

將世界空間中的點轉換為這個節點的本機空間。

參數
在世界空間中促成轉換的點
傳回
  • 代表向量空間點的新向量

保護方法

受保護的最終布林值 canAddChild (Node 子項、StringBuilder failedREASON)

參數
兒童
failed 原因

受保護的最終無效 onAddChild (節點子項)

參數
兒童

受保護的最終無效 onRemoveChild (節點子項)

參數
兒童