跳到主要内容

Spatial

继承

Node

简要描述

最基本的3D对象,是所有3D相关节点的父级。

描述

最基本的3D游戏对象,具有3D Transform和可见性设置。所有其他3D游戏对象均继承自Spatial。 使用Spatial作为父节点,可以在3D项目中移动,缩放,旋转和显示/隐藏子级。

仿射操作(旋转,缩放,平移)发生在父级的本地坐标系中,除非将Spatial对象设置为顶级。此坐标系中的仿射运算对应于Spatial变换上的直接仿射运算。 下面的“局部”一词是指该坐标系。 附加到Spatial对象本身的坐标系称为对象局部坐标系。

成员

类型属性名默认值
SpatialGizmogizmo
Transformglobal_transform
Vector3rotation
Vector3rotation_degreesVector3( 0, 0, 0 )
Vector3scaleVector3( 1, 1, 1 )
TransformtransformTransform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
Vector3translationVector3( 0, 0, 0 )
boolvisibletrue

方法

返回值类型方法名称
voidforce_update_transform()
Spatialget_parent_spatial() const
Worldget_world() const
voidglobal_rotate(axis: Vector3, angle: float)
voidglobal_scale(scale: Vector3)
voidglobal_translate(offset: Vector3)
voidhide()
boolis_local_transform_notification_enabled() const
boolis_scale_disabled() const
boolis_set_as_toplevel() const
boolis_transform_notification_enabled() const
boolis_visible_in_tree() const
voidlook_at(target: Vector3, up: Vector3)
voidlook_at_from_position(position: Vector3, target: Vector3, up: Vector3)
voidorthonormalize()
voidrotate(axis: Vector3, angle: float)
voidrotate_object_local(axis: Vector3, angle: float)
voidrotate_x(angle: float)
voidrotate_y(angle: float)
voidrotate_z(angle: float)
voidscale_object_local(scale: Vector3)
voidset_as_toplevel(enable: bool)
voidset_disable_scale(disable: bool)
voidset_identity()
voidset_ignore_transform_notification(enabled: bool)
voidset_notify_local_transform(enable: bool)
voidset_notify_transform(enable: bool)
voidshow()
Vector3to_global(local_point: Vector3) const
Vector3to_local(global_point: Vector3) const
voidtranslate(offset: Vector3)
voidtranslate_object_local(offset: Vector3)
voidupdate_gizmo()

信号

  • **visibility_changed**

节点可见性更改时发出。


常量

  • **NOTIFICATION_TRANSFORM_CHANGED = 2000**

当空间节点的全局转换更改时,它会收到此通知。这意味着当前节点或父节点都更改了其变换。

为了使NOTIFICATION_TRANSFORM_CHANGED起作用,用户首先需要使用set_notify_transform进行询问。

  • **NOTIFICATION_ENTER_WORLD = 41**

空间节点在注册到新的World资源时会收到此通知。

  • **NOTIFICATION_EXIT_WORLD = 42**

当空间节点从当前World资源中取消注册时,它们会收到此通知。

  • **NOTIFICATION_VISIBILITY_CHANGED = 43**

空间节点的可见性更改时会收到此通知。

成员说明

  • SpatialGizmo gizmo
setterset_gizmo(value)
getterget_gizmo
  • Transform global_transform
setterset_global_transform(value)
getterget_global_transform
  • Vector3 rotation
setterset_rotation(value)
getterget_rotation
  • Vector3 rotation_degrees
DefaultVector3( 0, 0, 0 )
setterset_rotation_degrees(value)
getterget_rotation_degrees
  • Vector3 scale
DefaultVector3( 1, 1, 1 )
setterset_scale(value)
getterget_scale
  • Transform transform
DefaultTransform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )
setterset_transform(value)
getterget_transform
  • Vector3 translation
DefaultVector3( 0, 0, 0 )
setterset_translation(value)
getterget_translation
  • bool visible
Defaulttrue
setterset_visible(value)
getteris_visible

方法说明

  • force_update_transform force_update_transform()

强制转换更新。出于性能方面的考虑,物理变换的变化不是即时的。 积累转换,然后进行设置。 如果在进行物理操作时需要最新的转换,请使用此选项。


  • get_parent_spatial get_parent_spatial() const

返回父级Spatial,如果没有父级或父级不是Spatial类型,则返回空的Object


  • get_world get_world() const

返回此Spatial节点注册到的当前World资源。


  • global_rotate global_rotate(axis: Vector3, angle: float)

以弧度指定的角度绕轴(单位Vector3)旋转全局(世界)变换。旋转轴在全局坐标系中。


  • global_scale global_scale(scale: Vector3)

通过给定的Vector3比例因子缩放全局(世界)转换。


  • global_translate global_translate(offset: Vector3)

通过Vector3偏移量移动全局(世界)转换。偏移量在全局坐标系中。


  • hide hide()

禁用此节点的渲染。将visible更改为false


  • is_local_transform_notification_enabled is_local_transform_notification_enabled() const

返回节点是否通知其本地转换更改。默认情况下,Spatial不会传播此信息。


  • is_scale_disabled is_scale_disabled() const

返回此节点是否使用(1、1、1)的比例或其本地转换比例。


  • is_set_as_toplevel is_set_as_toplevel() const

返回此节点是否设置为“顶级”,即是否忽略其父节点转换。


  • is_transform_notification_enabled is_transform_notification_enabled() const

返回节点是否通知其全局和局部转换更改。默认情况下,Spatial不会传播此信息。


  • is_visible_in_tree is_visible_in_tree() const

返回节点是否可见,并考虑其父级可见性。


  • look_at look_at(target: Vector3, up: Vector3)

旋转自身,以使局部-Z轴指向target位置。

转换将首先绕给定的up向量旋转,然后通过绕垂直于target和` up的轴的进一步旋转而完全对准目标

行动发生在全球空间。


  • look_at_from_position look_at_from_position(position: Vector3, target: Vector3, up: Vector3)

将节点移动到指定的position,然后根据look_at旋转自身以指向target


  • orthonormalize orthonormalize()

通过对该节点的Transform执行Gram-Schmidt正交归一化,重置此节点的变换(如缩放,倾斜和锥度),以保留其旋转和平移。


  • rotate rotate(axis: Vector3, angle: float)

以弧度为单位,以轴为单位以Vector3单位旋转局部变换。


  • rotate_object_local rotate_object_local(axis: Vector3, angle: float)

以弧度为单位,以轴为单位以Vector3单位旋转局部变换。


  • rotate_x rotate_x(angle: float)

围绕X轴以弧度为单位旋转局部变换。


  • rotate_y rotate_y(angle: float)

以弧度为单位围绕Y轴旋转局部变换。


  • rotate_z rotate_z(angle: float)

以弧度为单位围绕Z轴旋转局部变换。


  • scale_object_local scale_object_local(scale: Vector3)

通过对象局部坐标系中的给定3D比例因子缩放局部变换。


  • set_as_toplevel set_as_toplevel(enable: bool)

使节点忽略其父转换。节点转换仅在全局空间中。


  • set_disable_scale set_disable_scale(disable: bool)

设置节点是否使用(1、1、1)的比例或其本地转换比例。保留对本地转换规模的更改。


  • set_identity set_identity()

重置此节点的所有转换(将其Transform设置为单位矩阵)。


  • set_ignore_transform_notification set_ignore_transform_notification(enabled: bool)

设置节点是否忽略其转换(全局或局部)更改的通知。


  • set_notify_local_transform set_notify_local_transform(enable: bool)

设置节点是否通知其本地转换更改。默认情况下,Spatial不会传播此信息。


  • set_notify_transform set_notify_transform(enable: bool)

设置节点是否通知其全局和局部转换更改。默认情况下,Spatial不会传播此信息。


  • show show()

启用此节点的渲染。将visible更改为true


  • to_global to_global(local_point: Vector3) const

local_point从此节点的本地空间转换为世界空间。


  • to_local to_local(global_point: Vector3) const

global_point从世界空间转换为该节点的本地空间。


  • translate translate(offset: Vector3)

通过给定的偏移量Vector3更改节点的位置。

请注意,转换offset受节点缩放的影响,因此如果缩放比例为(例如)。 (10,1,1),偏移量为(2,0,0)的转换实际上会加20(2 * 10 )到X坐标。


  • translate_object_local translate_object_local(offset: Vector3)

通过给定的偏移Vector3在局部空间中更改节点的位置。


  • update_gizmo update_gizmo()

更新此节点的SpatialGizmo