已知的直接子類別 |
已知間接子類別 |
「節點」代表場景圖中的階層轉換。當中可包含算繪引擎的可轉譯內容。
每個節點都可以包含任意數量的子節點,以及一個父項。父項可以是其他節點或情境。
巢狀類別
Node.LifecycleListener | 發生節點生命週期事件時叫用的介面定義定義。 | ||
Node.OnTapListener | 使用者輕觸節點時要叫用的介面定義。 | ||
Node.OnTouchListener | 將觸控事件分派至這個節點時要叫用的回呼定義。 | ||
Node.TransformChangedListener | 變更節點轉換時要叫用的介面定義。 |
公用建構函式
Node()
建立不含父項的節點。
|
公用方法
void | |
void |
addTransformChangedListener(Node.TransformChangedListenertransformChangedListener)
新增監聽器,以便在節點和轉換發生變化時呼叫。
|
void | |
節點 | |
最終 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()
如果節點處於啟用狀態,則傳回「是」。
|
最終布林值 | |
最終布林值 |
isEnabled()
取得這個節點的啟用狀態。
|
布林 |
isTopLevel()
如果這個節點是頂層,則傳回「是」。
|
最終 Vector3 | |
最終 Vector3 | |
void |
onActivate()
在這個節點啟用時處理。
|
void |
onDisable()
在這個節點變為停用時處理。
|
布林 | |
void | |
void | |
void | |
void |
removeTransformChangedListener(Node.TransformChangedListenertransformChangedListener)
移除當節點的轉換作業變更時,系統會呼叫的事件監聽器。
|
void | |
Final void |
setEnabled (已啟用布林值)
設定這個節點的啟用狀態。
|
void | |
void | |
void | |
void | |
Final void | |
Final void | |
Final void | |
void | |
void | |
void | |
void | |
void | |
void | |
void | |
字串 |
toString()
|
最終 Vector3 | |
最終 Vector3 |
保護方法
最終布林值 | |
Final void |
onAddChild (Node 子項)
|
Final void |
onRemoveChild(Node 子項)
|
沿用的方法
公用建構函式
公開 節點 ()
建立不含父項的節點。
公用方法
public addLifecycleListener (Node.LifecycleListener LifeListener)
新增監聽器,以便在發生節點生命週期事件時呼叫。事件監聽器的新增順序。
參數
LifecycleListener |
---|
public addTransformChangedListener (Node.TransformChangedListenertransformChangedListener)
新增監聽器,以便在節點和轉換發生變化時呼叫。
參數
transformChangedListener |
---|
public callOnHierarchy (Consumer<Node>consumer)
掃遍階層,並在每個節點 (包括這個節點) 上呼叫方法。遍歷是深度。
參數
消費者 | 在每個節點上呼叫的方法 |
---|
公開 節點 findInHierarchy (述詞<節點> 條件)
掃遍階層,以找出符合特定條件的第一個節點 (包括這個節點)。達成述詞後,週遊就會消失。遍歷是深度。
參數
條件 | 請定義要搜尋的節點條件。 |
---|
傳回
- 符合述詞條件的第一個節點,否則會傳回空值
公開 CollisionShape getCollisionShape ()
取得用於與這個節點衝突的形狀。如果形狀為空值且設定了 setRenderable(Renderable)
,則會使用 getCollisionShape()
偵測 Node
的衝突。
傳回
- 代表幾何圖形 (例如球框、箱子、外框色調)。
public 最終版 Vector3 getLocalPosition ()
取得相對於其父項 (本機空間) 的節點位置副本。如果 isTopLevel()
為 true,則與 getWorldPosition()
相同。
傳回
- 代表節點和本機空間位置的新向量
最終最終 Quaternion getLocalRotation ()
取得相對於其父項 (本機空間) 的節點旋轉副本。如果 isTopLevel()
為 true,則與 getWorldRotation()
相同。
傳回
- 代表節點和本機空間旋轉的新的四元數
公開最終 Vector3 getLocalScale ()
取得根據父項 (本機空間) 縮放的節點副本。如果 isTopLevel()
為 true,則與 getWorldScale()
相同。
傳回
- 代表節點和本機空間比例的新向量
公開最終 節點 getParent ()
public 最終版 Vector3 getWorldPosition ()
最終最終 Quaternion getWorldRotation ()
公開最終 Vector3 getWorldScale ()
公開最終布林值 isActive ()
如果節點處於啟用狀態,則傳回「是」。如果節點符合下列所有條件,系統就會將其視為使用中:
- 節點是場景的一部分。
- 節點的父項已啟用。
- 已啟用節點。
- 系統會為每個影格呼叫節點的
onUpdate(FrameTime)
函式。 - 系統會轉譯節點的
getRenderable()
。 - 系統會在呼叫 Scene.hitTest 時檢查節點的
getCollisionShape()
。 - 使用者輕觸節點時,系統會呼叫節點的
onTouchEvent(HitTestResult, MotionEvent)
函式。
傳回
- 節點的有效狀態
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 父項)
變更這個節點的父項節點。如果設為空值,系統會從這個節點卸離這個節點。這個節點的本機位置、旋轉和比例將保持不變。因此,這個節點的世界位置、旋轉和比例可能因父項變更而不同。
父項可以是另一個 Node
或 Scene
。如果是情境,系統會將此 Node
視為頂層。getParent()
會傳回空值,而 getScene()
會傳回情境。
參數
父項 | 這個節點所屬的子項的新父項。如果為空值,此節點就會從其上層卸離。 |
---|
public void setRenderable (可轉譯可轉譯)
設定此節點顯示的 Renderable
。如未設定 setCollisionShape(CollisionShape)
,系統會使用 getCollisionShape()
偵測此 Node
的衝突。
參數
可轉譯 | 通常是 3D 模型。如果為空值,系統將移除這個節點的現有可轉譯內容。 |
---|
公開最終 Vector3 worldToLocalDirection (Vector3 方向)
將方向從世界空間轉換成此節點的本機空間。不會影響節點的位置或規模。
參數
方向 | 如何在世界空間中完成轉換 |
---|
傳回
- 代表本機空間方向的新向量