Gizmos

类位于 InfEngine.gizmos

描述

在场景视图中绘制调试可视化图形的工具类。

description

Gizmos 在场景视图中绘制可视化调试辅助图形。在 InfComponenton_draw_gizmos()on_draw_gizmos_selected() 生命周期方法中使用 Gizmos 来可视化边界、方向和空间关系。

在绘制前设置 Gizmos.color 来控制后续图形的颜色。可用的基本图元包括线段、射线、线框立方体、线框球体、弧线和摄像机视锥体。

属性

名称 类型 描述
color Tuple[float, float, float] 下一次绘制操作使用的颜色。 (只读)
matrix Optional[List[float]] The transformation matrix for gizmo drawing. (只读)

properties

静态方法

方法 描述
Gizmos.draw_line(start: Vec3, end: Vec3) → None 绘制一条线段。
Gizmos.draw_ray(origin: Vec3, direction: Vec3) → None 绘制一条射线。
Gizmos.draw_icon(position: Vec3, object_id: int, color: Optional[Tuple[float, float, float]] = ...) → None 在指定位置绘制图标。
Gizmos.draw_wire_cube(center: Vec3, size: Vec3) → None 绘制线框立方体。
Gizmos.draw_wire_sphere(center: Vec3, radius: float, segments: int = ...) → None 绘制线框球体。
Gizmos.draw_frustum(position: Vec3, fov_deg: float, aspect: float, near: float, far: float, forward: Vec3 = ..., up: Vec3 = ..., right: Vec3 = ...) → None 绘制视锥体。
Gizmos.draw_wire_arc(center: Vec3, normal: Vec3, radius: float, start_angle_deg: float = ..., arc_deg: float = ..., segments: int = ...) → None Draw a wireframe arc in the Scene view.

static_methods

示例

example

from InfEngine import InfComponent
from InfEngine.gizmos import Gizmos
from InfEngine.math import vector3

class GizmosDemo(InfComponent):
    attack_range: float = 5.0

    def on_draw_gizmos_selected(self):
        pos = self.transform.position

        # 红色线框球体表示攻击范围
        Gizmos.color = (1, 0, 0)
        Gizmos.draw_wire_sphere(pos, self.attack_range)

        # 绿色射线表示前方方向
        Gizmos.color = (0, 1, 0)
        Gizmos.draw_ray(pos, self.transform.forward * 3)

        # 蓝色线框立方体作为路点标记
        Gizmos.color = (0, 0, 1)
        Gizmos.draw_wire_cube(pos + vector3(0, 2, 0), vector3(1, 1, 1))

    def on_draw_gizmos(self):
        # 始终可见的从原点到此对象的线段
        Gizmos.color = (1, 1, 0)
        Gizmos.draw_line(vector3.zero, self.transform.position)

另请参阅

see_also