Spatial
继承
简要描述
最基本的3D对象,是所有3D相关节点的父级。
描述
最基本的3D游戏对象,具有3D Transform和可见性设置。所有其他3D游戏对象均继承自Spatial。 使用Spatial作为父节点,可以在3D项目中移动,缩放,旋转和显示/隐藏子级。
仿射操作(旋转,缩放,平移)发生在父级的本地坐标系中,除非将Spatial对象设置为顶级。此坐标系中的仿射运算对应于Spatial变换上的直接仿射运算。 下面的“局部”一词是指该坐标系。 附加到Spatial对象本身的坐标系称为对象局部坐标系。
成员
类型 | 属性名 | 默认值 |
---|---|---|
SpatialGizmo | gizmo | |
Transform | global_transform | |
Vector3 | rotation | |
Vector3 | rotation_degrees | Vector3( 0, 0, 0 ) |
Vector3 | scale | Vector3( 1, 1, 1 ) |
Transform | transform | Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) |
Vector3 | translation | Vector3( 0, 0, 0 ) |
bool | visible | true |
方法
返回值类型 | 方法名称 |
---|---|
void | force_update_transform() |
Spatial | get_parent_spatial() const |
World | get_world() const |
void | global_rotate(axis: Vector3, angle: float) |
void | global_scale(scale: Vector3) |
void | global_translate(offset: Vector3) |
void | hide() |
bool | is_local_transform_notification_enabled() const |
bool | is_scale_disabled() const |
bool | is_set_as_toplevel() const |
bool | is_transform_notification_enabled() const |
bool | is_visible_in_tree() const |
void | look_at(target: Vector3, up: Vector3) |
void | look_at_from_position(position: Vector3, target: Vector3, up: Vector3) |
void | orthonormalize() |
void | rotate(axis: Vector3, angle: float) |
void | rotate_object_local(axis: Vector3, angle: float) |
void | rotate_x(angle: float) |
void | rotate_y(angle: float) |
void | rotate_z(angle: float) |
void | scale_object_local(scale: Vector3) |
void | set_as_toplevel(enable: bool) |
void | set_disable_scale(disable: bool) |
void | set_identity() |
void | set_ignore_transform_notification(enabled: bool) |
void | set_notify_local_transform(enable: bool) |
void | set_notify_transform(enable: bool) |
void | show() |
Vector3 | to_global(local_point: Vector3) const |
Vector3 | to_local(global_point: Vector3) const |
void | translate(offset: Vector3) |
void | translate_object_local(offset: Vector3) |
void | update_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
setter | set_gizmo(value) |
---|---|
getter | get_gizmo |
- Transform global_transform
setter | set_global_transform(value) |
---|---|
getter | get_global_transform |
- Vector3 rotation
setter | set_rotation(value) |
---|---|
getter | get_rotation |
- Vector3 rotation_degrees
Default | Vector3( 0, 0, 0 ) |
---|---|
setter | set_rotation_degrees(value) |
getter | get_rotation_degrees |
- Vector3 scale
Default | Vector3( 1, 1, 1 ) |
---|---|
setter | set_scale(value) |
getter | get_scale |
- Transform transform
Default | Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) |
---|---|
setter | set_transform(value) |
getter | get_transform |
- Vector3 translation
Default | Vector3( 0, 0, 0 ) |
---|---|
setter | set_translation(value) |
getter | get_translation |
- bool visible
Default | true |
---|---|
setter | set_visible(value) |
getter | is_visible |
方法说明
- force_update_transform force_update_transform()
强制转换更新。出于性能方面的考虑,物理变换的变化不是即时的。 积累转换,然后进行设置。 如果在进行物理操作时需要最新的转换,请使用此选项。
- get_parent_spatial get_parent_spatial() const
返回父级Spatial,如果没有父级或父级不是Spatial类型,则返回空的Object。
- get_world get_world() const
- 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。