已知的直接子类 |
已知的间接子类 |
节点表示场景图的层次结构中的转换。它可以包含可供渲染引擎渲染的可渲染对象。
每个节点可以拥有任意数量的子节点和一个父节点。父节点可能是其他节点,也可能是场景。
嵌套类
接口 | Node.LifecycleListener | 发生节点生命周期事件时调用的回调的接口定义。 | |
接口 | Node.OnTapListener | 在用户点按节点时调用的接口的定义。 | |
接口 | Node.OnTouchListener | 在将触摸事件分派给此节点时要调用的回调的接口定义。 | |
接口 | Node.TransformChangedListener | 节点转换发生更改时要调用的回调的定义。 |
公共构造函数
公共方法
无效 | |
无效 |
addTransformChangedListener(Node.TransformChangedListener TransformChangedListener)
添加将在节点的转换发生变化时调用的监听器。
|
无效 | |
节点 | |
final Vector3 |
getBack()
获取此节点的世界空间返回矢量 (+z)。
|
CollisionShape |
getCollisionShape()
获取用于与此节点冲突的形状。
|
final Vector3 |
getDown()
获取此节点的世界空间向下矢量 (-y)。
|
final Vector3 |
getForward()
获取此节点的世界空间正向量 (-z)。
|
final Vector3 |
getLeft()
获取此节点的世界空间左矢量 (-x)。
|
浅色 |
getLight()
获取可变的当前光照。
|
final Vector3 |
getLocalPosition()
获取节点相对于其父级(本地空间)位置的副本。
|
最终 四元数 |
getLocalRotation()
获取节点相对于其父级(本地空间)旋转的副本。
|
final Vector3 |
getLocalScale()
获取节点相对于其父项(本地空间)的比例的副本。
|
final String |
getName()
返回节点的名称。
|
final Node |
getParent()
返回此节点的父级。
|
可渲染对象 |
getRenderable()
获取为此节点显示的可渲染对象。
|
final Vector3 |
getRight()
获取此节点的世界空间右向量 (+x)。
|
最终 场景 |
getScene()
返回此节点所属的场景;如果此节点不是任何场景的一部分,则返回 null。
|
final Vector3 |
getUp()
获取此节点的世界空间向上矢量 (+y)。
|
final Vector3 |
getWorldPosition()
获取节点世界空间位置的副本。
|
最终 四元数 |
getWorldRotation()
获取节点世界空间旋转的副本。
|
final Vector3 |
getWorldScale()
获取节点世界空间比例的副本。
|
final 布尔值 |
isActive()
如果节点处于活动状态,则返回 true。
|
final 布尔值 | |
final 布尔值 |
isEnabled()
获取此节点的启用状态。
|
布尔值 |
isTopLevel()
如果该节点是顶级,则返回 true。
|
final Vector3 | |
final Vector3 | |
无效 |
onActivate()
处理此节点何时变为活动状态。
|
无效 |
onDisable()
处理此节点何时变为非活跃状态。
|
布尔值 | |
无效 | |
无效 | |
无效 | |
无效 |
removeTransformChangedListener(Node.TransformChangedListener TransformChangedListener)
移除节点转换更改时调用的监听器。
|
无效 | |
final void |
setEnabled(布尔值已启用)
设置此节点的启用状态。
|
无效 | |
无效 | |
无效 | |
无效 | |
final void | |
final void | |
final void | |
无效 | |
无效 | |
无效 | |
无效 | |
无效 | |
无效 | |
无效 | |
字符串 | |
final Vector3 | |
final Vector3 |
受保护的方法
final 布尔值 | |
final void | |
final void |
onRemoveChild(Node 子项)
|
继承的方法
公共构造函数
public 节点 ()
创建没有父级的节点。
公共方法
public void addLifecycleListener (Node.LifecycleListenerlifecycleListener)
添加将在节点生命周期事件发生时调用的监听器。系统将按照添加顺序调用监听器。
参数
lifecycleListener |
---|
public void addTransformChangedListener (Node.TransformChangedListenertransformChangedListener)
添加将在节点的转换发生变化时调用的监听器。
参数
TransformChangedListener |
---|
public void callOnHierarchy (Consumer<Node> consumer)
遍历层次结构并在每个节点(包括该节点)上调用方法。遍历首先是深入探索。
参数
使用方 | 在每个节点上调用的方法 |
---|
public Node findInHierarchy (Predicate<Node>condition)
遍历层次结构以查找第一个满足条件的节点(包括该节点)。 一旦满足该谓词,遍历就会停止。遍历首先是深入的。
参数
condition | 谓词定义要搜索的节点的条件。 |
---|
返回
- 第一个与谓词条件匹配的节点,否则返回 null
public CollisionShape getCollisionShape ()
获取用于与此节点冲突的形状。如果形状为 null 且设置了 setRenderable(Renderable)
,则使用 getCollisionShape()
检测此 Node
的冲突。
返回
- 表示几何形状,即球体、盒子、凸形外壳。
public final Vector3 getLocalPosition ()
获取节点相对于其父级(本地空间)位置的副本。如果 isTopLevel()
为 true,则等同于 getWorldPosition()
。
返回
- 表示节点的本地空间位置的新矢量
public final Quaternion getLocalRotation ()
获取节点相对于其父级(本地空间)旋转的副本。如果 isTopLevel()
为 true,则等同于 getWorldRotation()
。
返回
- 表示节点的本地空间旋转的新四元数
public final Vector3 getLocalScale ()
获取节点相对于其父项(本地空间)的比例的副本。如果 isTopLevel()
为 true,则等同于 getWorldScale()
。
返回
- 表示节点的本地空间比例的新矢量
public final Node getParent ()
public final Vector3 getWorldPosition ()
public final Quaternion getWorldRotation ()
public final Vector3 getWorldScale ()
public final boolean isActive ()
如果节点处于活动状态,则返回 true。如果某个节点满足以下所有条件,则被视为活跃:
- 节点是场景的一部分。
- 节点的父级处于活动状态。
- 节点已启用。
- 节点的
onUpdate(FrameTime)
函数会在每一帧上调用。 - 节点的
getRenderable()
将呈现。 - 系统会在对 Scene.hitTest 的调用中检查节点的
getCollisionShape()
。 - 用户轻触节点时,系统会调用节点的
onTouchEvent(HitTestResult, MotionEvent)
函数。
返回
- 节点的活跃状态
public final boolean isDescendantOf (NodeParent 祖先实体)
检查给定节点父项是否为递归的此节点的祖先实体。
参数
ancestor | 要检查的节点父节点 |
---|
返回
- 如果节点是此节点的祖先实体,则返回 true
public final boolean isEnabled ()
public boolean isTopLevel ()
如果该节点是顶级,则返回 true。如果某个节点没有父节点或父节点是场景,则会被视为顶级节点。
返回
- 如果节点是顶级节点,则为 true
public final Vector3 localToWorldDirection (Vector3 方向)
将方向从此节点的本地空间转换为真实世界空间。不受节点位置或规模的影响。
参数
方向 | 本地空间中的转换方向 |
---|
返回
- 表示现实世界空间方向的新矢量
public final Vector3 localToWorldPoint (Vector3 point)
将此节点的本地空间中的点转换为世界空间。
参数
point | 要转换的本地空间中的点 |
---|
返回
- 表示现实世界空间中的点的新矢量
public void onActivate ()
处理此节点何时变为活动状态。如果某节点已启用,但属于场景的一部分且其父节点也处于活动状态,则该节点处于活动状态。
覆盖在节点激活时需要进行的任何设置。
public void onDisable ()
处理此节点何时变为非活跃状态。如果某个节点已停用、不属于某个场景或其父级不活跃,则会处于不活跃状态。
覆盖:用于执行停用节点时需要完成的任何设置。
public boolean onTouchEvent (HitTestResulthitTestResult, MotionEvent motionEvent)
处理轻触此节点时的操作。
替换,以执行触摸此节点时应出现的任何逻辑。触摸事件的传播方式与触摸传播的方式对应于 Android 视图。仅在节点处于活动状态时调用。
发生 ACTION_DOWN 事件时,表示手势开始。ACTION_UP 或 ACTION_CANCEL 表示手势何时结束。手势启动时,系统会执行以下操作:
- 将触摸事件分派给被
hitTest(MotionEvent)
检测到的触摸节点。 - 如果节点未消费事件,请通过该节点的父级向上递归并分派触摸事件,直到其中一个节点消耗事件。
- 如果没有节点使用该事件,则系统将忽略该手势,并且手势中后续事件将不会传递到任何节点。
- 如果其中一个节点使用了该事件,则该节点将消耗该手势的所有后续触摸事件。
Node.OnTouchListener
。如果 Node.OnTouchListener
不处理事件,则会将其传递给 onTouchEvent(HitTestResult, MotionEvent)
。参数
命中结果 | 表示触摸的节点,以及有关触摸位置的信息。在 ACTION_DOWN 事件中,getNode() 将始终是此节点或它的某个子节点。在其他事件中,触摸可能已移动,从而导致 getNode() 发生变化(也可能是 null)。 |
---|---|
motionEvent [动作事件] | 动作事件。 |
返回
- 如果事件已处理,则返回 true,否则返回 false。
public void onTransformChange (Node originNode)
处理此节点的转换发生更改时的情况。
源节点是层次结构中触发此节点变化的最顶层节点。它将始终是同一节点或其某个父级节点(即,如果节点 A 的位置发生变化),则会触发为其所有子级节点(源节点为节点 A)调用 onTransformChange(Node)
。
参数
源节点 | 触发了此节点转换以发生更改的节点 |
---|
public void onUpdate (FrameTime frameTime)
此节点更新时处理。节点会在呈现每一帧之前更新。仅当节点处于活动状态时才调用此方法。
执行替换,以执行每帧需要发生的任何更新。
参数
帧时间 | 提供当前帧的时间信息 |
---|
public void removeLifecycleListener (Node.LifecycleListenerlifecycleListener)
移除在节点生命周期事件发生时调用的监听器。
参数
lifecycleListener |
---|
public void removeTransformChangedListener (Node.TransformChangedListenertransformChangedListener)
移除节点转换更改时调用的监听器。
参数
TransformChangedListener |
---|
public void setCollisionShape (CollisionShape collisionShape)
将形状设置为用于检测此 Node
的冲突。如果未设置形状且设置了 setRenderable(Renderable)
,则使用 getCollisionShape()
检测此 Node
的冲突。
参数
碰撞形状 | 表示几何形状,即球体、盒子、凸套。如果为 null,则此节点的当前冲突形状将被移除。 |
---|
public final void setEnabled (boolean enabled)
public void setLight (Light Light)
设置要显示的 Light
。如需使用,请先使用 Light.Builder
创建 Light
。设置您关注的参数,然后使用此函数将其附加到节点。节点可以具有可渲染对象和灯,也可以仅充当 Light
。
参数
灯具 | 要渲染的 Light 的属性,传递 null 以移除光线。
|
---|
public void setLocalPosition (Vector3 position)
设置此节点相对于其父级(本地空间)的位置。如果 isTopLevel()
为 true,则等同于 setWorldPosition(Vector3)
。
参数
position | 要应用的职位。 |
---|
另请参阅
public void setLocalRotation (Quaternionrot)
设置此节点相对于其父项(本地空间)的旋转角度。如果 isTopLevel()
为 true,则等同于 setWorldRotation(Quaternion)
。
参数
旋转 | 要应用的旋转角度。 |
---|
另请参阅
public void setLocalScale (Vector3scale)
public final void setLookDirection (Vector3 LookDirection)
设置节点在真实世界空间中的方向。调用此方法后,getForward()
将与传入的方向匹配。世界空间向上(0、1、0)将用于确定节点围绕方向的方向。
参数
LookDirection | 表示现实世界空间中所需方向的矢量 |
---|
public final void setLookDirection (Vector3 LookDirection, Vector3 upDirection)
设置节点在真实世界空间中的方向。调用此方法后,getForward()
将与传入的方向匹配。向上方向将决定节点的方向方向。样式方向和向上方向不能一致(平行),否则方向无效。
参数
LookDirection | 表示现实世界空间中所需方向的矢量 |
---|---|
向上方向 | 表示要使用的有效向上矢量的矢量,例如 Vector3.up() |
public final void setName (String name)
设置此节点的名称。您可以使用节点名称找到节点。多个节点可以具有相同的名称,在这种情况下,调用 findByName(String)
将返回具有给定名称的第一个节点。
参数
name | 节点的名称。 |
---|
public void setOnTapListener (Node.OnTapListener onTapListener)
注册点按此节点时要调用的回调。如果有注册的回调,触摸事件将不会以气泡形式显示到此节点的父级。如果覆盖了 Node.onTouchEvent 且未调用 super.onTouchEvent,则不会发生点按操作。
参数
onTapListener |
---|
另请参阅
public void setOnTouchListener (Node.OnTouchListener onTouchListener)
注册在将触摸事件分派给此节点时要调用的回调。触摸事件的传播方式与触摸传播的方式对应于 Android 视图。仅在节点处于活动状态时调用。
发生 ACTION_DOWN 事件时,表示手势开始。ACTION_UP 或 ACTION_CANCEL 表示手势何时结束。手势启动时,系统会执行以下操作:
- 将触摸事件分派给被
hitTest(MotionEvent)
检测到的触摸节点。 - 如果节点未消费事件,请通过该节点的父级向上递归并分派触摸事件,直到其中一个节点消耗事件。
- 如果没有节点使用该事件,则系统将忽略该手势,并且手势中后续事件将不会传递到任何节点。
- 如果其中一个节点使用了该事件,则该节点将消耗该手势的所有后续触摸事件。
Node.OnTouchListener
。如果 Node.OnTouchListener
不处理事件,则会将其传递给 onTouchEvent(HitTestResult, MotionEvent)
。参数
onTouchListener |
---|
另请参阅
public void setParent (NodeParent parent)
更改此节点的父节点。如果设置为 null,此节点将与其父项分离。此节点的本地位置、旋转和缩放将保持不变。因此,在节点发生变化后,此节点的世界位置、旋转和缩放比例可能会发生变化。
父级可以是另一个 Node
或 Scene
。如果是场景,那么此 Node
会被视为顶级元素。getParent()
将返回 null,而 getScene()
将返回场景。
参数
父级 | 此节点将作为其子节点的新父节点。如果为 null,此节点将与父节点分离。 |
---|
public void setRenderable (Renderable renderable)
设置要为此节点显示的 Renderable
。如果未设置 setCollisionShape(CollisionShape)
,则使用 getCollisionShape()
检测此 Node
的冲突。
参数
可渲染 | 通常为 3D 模型。如果为 null,系统将移除此节点的当前可渲染对象。 |
---|
public void setWorldPosition (Vector3 position)
public void setWorldRotation (Quaternion 旋转)
public final Vector3 worldToLocalDirection (Vector3 方向)
将方向从真实世界转换为此节点的本地空间。不受节点位置或规模的影响。
参数
方向 | 在现实世界中的方向 |
---|
返回
- 表示本地空间方向的新矢量