EditorSpatialGizmo
继承
简要描述
用于编辑空间对象的自定义Gizmo。
描述
自定义Gizmo,用于为3D空间对象提供自定义可视化和编辑(句柄)。有关更多信息,见EditorSpatialGizmoPlugin
方法
返回值类型 | 方法名称 |
---|---|
void | add_collision_segments(segments: PoolVector3Array) |
void | add_collision_triangles(triangles: TriangleMesh) |
void | add_handles(handles: PoolVector3Array, material: Material, billboard: bool = false, secondary: bool = false) |
void | add_lines(lines: PoolVector3Array, material: Material, billboard: bool = false, modulate: Color = Color( 1, 1, 1, 1 )) |
void | add_mesh(mesh: ArrayMesh, billboard: bool = false, skeleton: SkinReference = null, material: Material = null) |
void | add_unscaled_billboard(material: Material, default_scale: float = 1, modulate: Color = Color( 1, 1, 1, 1 )) |
void | clear() |
void | commit_handle(index: int, restore: Variant, cancel: bool = false) virtual |
String | get_handle_name(index: int) virtual |
Variant | get_handle_value(index: int) virtual |
EditorSpatialGizmoPlugin | get_plugin() const |
Spatial | get_spatial_node() const |
bool | is_handle_highlighted(index: int) virtual |
void | redraw() virtual |
void | set_handle(index: int, camera: Camera, point: Vector2) virtual |
void | set_hidden(hidden: bool) |
void | set_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
状态,skeleton
和material
为gizmo增加一个网格。如果billboard
为true
,则网格物体将旋转以始终面向相机。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 (hidden: bool)
设置Gizmo的隐藏状态。
- set_spatial_node set_spatial_node(node: Node)
设置Gizmo的参考“Spatial”节点。node
必须从Spatial继承。