GFGravityField3D¶
API Reference / Physics / 类索引
- 路径:
addons/gf/extensions/physics/nodes/gf_gravity_field_3d.gd - 模块:
Physics - 继承:
Node3D - API:
public - 类别:运行时句柄 (
runtime_handle) - 首次版本:
3.17.0
通用 3D 重力/加速度场。 提供点重力、远离中心和固定方向三种方向模式,以及常量、线性、平方反比 和曲线衰减。项目可继承并重写方向或强度计算以实现更复杂的场。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | field_changed |
signal field_changed |
| 枚举 | DirectionMode |
enum DirectionMode |
| 枚举 | FalloffMode |
enum FalloffMode |
| 属性 | enabled |
var enabled: bool = true: |
| 属性 | acceleration |
var acceleration: float = 9.8: |
| 属性 | radius |
var radius: float = 0.0: |
| 属性 | min_distance |
var min_distance: float = 1.0: |
| 属性 | direction_mode |
var direction_mode: DirectionMode = DirectionMode.TOWARD_ORIGIN: |
| 属性 | constant_direction |
var constant_direction: Vector3 = Vector3.DOWN: |
| 属性 | falloff_mode |
var falloff_mode: FalloffMode = FalloffMode.CONSTANT: |
| 属性 | falloff_curve |
var falloff_curve: Curve = null: |
| 方法 | get_acceleration_at |
func get_acceleration_at(world_position: Vector3) -> Vector3: |
| 方法 | get_strength_at_distance |
func get_strength_at_distance(distance: float) -> float: |
| 方法 | _get_direction_at |
func _get_direction_at(world_position: Vector3) -> Vector3: |
信号¶
field_changed¶
- API:
public
力场参数变化时发出。
枚举¶
DirectionMode¶
- API:
public
enum DirectionMode { ## 朝向力场节点原点。 TOWARD_ORIGIN, ## 远离力场节点原点。 AWAY_FROM_ORIGIN, ## 使用固定方向。 CONSTANT_DIRECTION, }
力场方向模式。
FalloffMode¶
- API:
public
enum FalloffMode { ## 半径内保持恒定强度。 CONSTANT, ## 从中心到半径边缘线性衰减。 LINEAR, ## 按平方反比衰减。 INVERSE_SQUARE, ## 使用 Curve 采样衰减;横轴为距离占半径比例。 CURVE, }
强度衰减模式。
属性¶
enabled¶
- API:
public
是否启用力场。
acceleration¶
- API:
public
基础加速度强度。
radius¶
- API:
public
影响半径;小于等于 0 表示无限范围。
min_distance¶
- API:
public
平方反比模式下用于避免近距离发散的最小距离。
direction_mode¶
- API:
public
方向模式。
constant_direction¶
- API:
public
固定方向模式使用的方向。
falloff_mode¶
- API:
public
强度衰减模式。
falloff_curve¶
- API:
public
曲线衰减模式使用的 Curve。采样值会乘以 acceleration。
方法¶
get_acceleration_at¶
- API:
public
获取指定世界坐标处的加速度向量。
参数:
| 名称 | 说明 |
|---|---|
world_position |
世界坐标。 |
返回:加速度向量。
get_strength_at_distance¶
- API:
public
获取指定距离处的力场强度。
参数:
| 名称 | 说明 |
|---|---|
distance |
距离。 |
返回:加速度强度。
_get_direction_at¶
- API:
protected
获取指定世界坐标处的方向。子类可重写以实现自定义场。
参数:
| 名称 | 说明 |
|---|---|
world_position |
世界坐标。 |
返回:方向向量。