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