跳到主要内容

EditorSpatialGizmo

继承

SpatialGizmo

简要描述

用于编辑空间对象的自定义Gizmo。

描述

自定义Gizmo,用于为3D空间对象提供自定义可视化和编辑(句柄)。有关更多信息,见EditorSpatialGizmoPlugin

方法

返回值类型方法名称
voidadd_collision_segments(segments: PoolVector3Array)
voidadd_collision_triangles(triangles: TriangleMesh)
voidadd_handles(handles: PoolVector3Array, material: Material, billboard: bool = false, secondary: bool = false)
voidadd_lines(lines: PoolVector3Array, material: Material, billboard: bool = false, modulate: Color = Color( 1, 1, 1, 1 ))
voidadd_mesh(mesh: ArrayMesh, billboard: bool = false, skeleton: SkinReference = null, material: Material = null)
voidadd_unscaled_billboard(material: Material, default_scale: float = 1, modulate: Color = Color( 1, 1, 1, 1 ))
voidclear()
voidcommit_handle(index: int, restore: Variant, cancel: bool = false) virtual
Stringget_handle_name(index: int) virtual
Variantget_handle_value(index: int) virtual
EditorSpatialGizmoPluginget_plugin() const
Spatialget_spatial_node() const
boolis_handle_highlighted(index: int) virtual
voidredraw() virtual
voidset_handle(index: int, camera: Camera, point: Vector2) virtual
voidset_hidden(hidden: bool)
voidset_spatial_node(node: Node)

方法说明

  • add_collision_segments add_collision_segments(segments: PoolVector3Array)

添加指定的segments到gizmo的碰撞形状以进行拾取。redraw时调用此函数。


  • add_collision_triangles add_collision_triangles(triangles: TriangleMesh)

将碰撞三角形添加到Gizmo中以进行拾取。一个TriangleMesh也可以从常规的Mesh生成,redraw时调用此函数。


  • add_handles add_handles(handles: PoolVector3Array, material: Material, billboard: bool = false, secondary: bool = false)

添加可用于使正在编辑的对象变形的手柄(点)列表。

编辑这些句柄时将调用虚拟函数。redraw时调用此函数。


  • add_lines add_lines(lines: PoolVector3Array, material: Material, billboard: bool = false, modulate: Color = Color( 1, 1, 1, 1 ))

使用给定的材质将线添加到Gizmo(以2点为一组)。这些线用于可视化Gizmo。redraw时调用此函数。


  • add_mesh add_mesh(mesh: ArrayMesh, billboard: bool = false, skeleton: SkinReference = null, material: Material = null)

使用指定的billboard状态,skeletonmaterial为gizmo增加一个网格。如果billboardtrue,则网格物体将旋转以始终面向相机。redraw时调用此函数。


  • add_unscaled_billboard add_unscaled_billboard(material: Material, default_scale: float = 1, modulate: Color = Color( 1, 1, 1, 1 ))

添加未缩放的广告牌以进行可视化。redraw时调用此函数。


  • clear clear()

删除Gizmo中的所有内容,包括网格,碰撞和手柄。


  • commit_handle commit_handle(index: int, restore: Variant, cancel: bool = false) virtual

提交要编辑的句柄(句柄必须先前已由add_handles添加)。

如果cancel参数为true,则提供了将已编辑的值恢复为原始值的选项。


  • get_handle_name get_handle_name(index: int) virtual

获取已编辑句柄的名称(句柄必须先前已由add_handles添加)。

编辑时可以命名句柄以供用户参考。


  • get_handle_value get_handle_value(index: int) virtual

获取句柄的实际值。该值可以是任何值,并用于在调用commit_handle时最终取消运动。


  • get_plugin get_plugin() const

返回拥有此Gizmo的EditorSpatialGizmoPlugin。使用EditorSpatialGizmoPlugin.get_material检索材料非常有用。


  • get_spatial_node get_spatial_node() const

返回与此Gizmo关联的Spatial节点。


  • is_handle_highlighted is_handle_highlighted(index: int) virtual

获取句柄是否突出显示。


  • redraw redraw() virtual

当此gizmo的Spatial引用更改时(调用Spatial.update_gizmo方法),将调用此函数。


  • set_handle set_handle(index: int, camera: Camera, point: Vector2) virtual

当用户在屏幕坐标中拖动Gizmo手柄(以前添加有add_handles)时,将使用此功能。

该相机Camera还提供了这样的屏幕坐标可以转换为光线投射。


  • set_hidden set_hidden(hidden: bool)

设置Gizmo的隐藏状态。


  • set_spatial_node set_spatial_node(node: Node)

设置Gizmo的参考“Spatial”节点。node必须从Spatial继承。