GFInputDirectionTools¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/input/common/gf_input_direction_tools.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
8.0.0
二维输入方向处理工具。 提供径向 deadzone、2/4/8 向离散化、方向名称和反向方向映射。 它只处理纯 Vector2 数据,不读取 InputMap,也不规定动作命名。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 枚举 | SnapMode |
enum SnapMode |
| 枚举 | Direction2D |
enum Direction2D |
| 方法 | apply_radial_deadzone |
static func apply_radial_deadzone( raw_direction: Vector2, deadzone: float, rescale_after_deadzone: bool = true ) -> Vector2: |
| 方法 | snap_vector |
static func snap_vector( raw_direction: Vector2, mode: SnapMode = SnapMode.CARDINAL_4, deadzone: float = 0.0, rescale_analog_after_deadzone: bool = false ) -> Vector2: |
| 方法 | get_direction_name |
static func get_direction_name(direction: Direction2D) -> StringName: |
| 方法 | get_direction_from_name |
static func get_direction_from_name( direction_name: StringName, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D: |
| 方法 | get_direction_vector |
static func get_direction_vector(direction: Direction2D) -> Vector2: |
| 方法 | get_closest_direction |
static func get_closest_direction( raw_direction: Vector2, include_diagonal: bool = true, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D: |
| 方法 | get_direction_from_vector |
static func get_direction_from_vector( direction_vector: Vector2, include_diagonal: bool = true, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D: |
| 方法 | get_opposite_direction |
static func get_opposite_direction(direction: Direction2D) -> Direction2D: |
| 方法 | get_opposite_vector |
static func get_opposite_vector(direction_vector: Vector2) -> Vector2: |
枚举¶
SnapMode¶
- API:
public - 首次版本:
8.0.0
enum SnapMode {
## 保留连续模拟向量。
ANALOG,
## 只输出左右方向。
HORIZONTAL_2,
## 只输出上下方向。
VERTICAL_2,
## 输出上下左右四方向。
CARDINAL_4,
## 输出上下左右和四个对角方向。
EIGHT_WAY,
}
方向吸附模式。
Direction2D¶
- API:
public - 首次版本:
8.0.0
enum Direction2D {
## 无方向。
NONE,
## 上方向。
UP,
## 右方向。
RIGHT,
## 下方向。
DOWN,
## 左方向。
LEFT,
## 右上方向。
UP_RIGHT,
## 左上方向。
UP_LEFT,
## 右下方向。
DOWN_RIGHT,
## 左下方向。
DOWN_LEFT,
}
二维离散方向。
方法¶
apply_radial_deadzone¶
- API:
public - 首次版本:
8.0.0
static func apply_radial_deadzone( raw_direction: Vector2, deadzone: float, rescale_after_deadzone: bool = true ) -> Vector2:
对二维输入应用径向 deadzone。
参数:
| 名称 | 说明 |
|---|---|
raw_direction |
原始二维输入。 |
deadzone |
死区阈值,自动钳制到 0.0 到 0.99。 |
rescale_after_deadzone |
是否把死区外剩余行程重映射到 0.0 到 1.0。 |
返回:处理后的二维输入。
snap_vector¶
- API:
public - 首次版本:
8.0.0
static func snap_vector( raw_direction: Vector2, mode: SnapMode = SnapMode.CARDINAL_4, deadzone: float = 0.0, rescale_analog_after_deadzone: bool = false ) -> Vector2:
按指定模式把二维输入吸附到连续或离散方向。
参数:
| 名称 | 说明 |
|---|---|
raw_direction |
原始二维输入。 |
mode |
吸附模式。 |
deadzone |
死区阈值,自动钳制到 0.0 到 0.99。 |
rescale_analog_after_deadzone |
ANALOG 模式下是否把死区外剩余行程重映射到 0.0 到 1.0。 |
返回:处理后的方向;离散模式下每个轴只会是 -1.0、0.0 或 1.0。
get_direction_name¶
- API:
public - 首次版本:
8.0.0
按枚举获取方向名称。
参数:
| 名称 | 说明 |
|---|---|
direction |
方向枚举。 |
返回:方向名称;NONE 返回空 StringName。
get_direction_from_name¶
- API:
public - 首次版本:
8.0.0
static func get_direction_from_name( direction_name: StringName, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D:
按名称获取方向枚举。
参数:
| 名称 | 说明 |
|---|---|
direction_name |
方向名称。 |
default_direction |
未找到名称时返回的默认方向。 |
返回:方向枚举。
get_direction_vector¶
- API:
public - 首次版本:
8.0.0
按枚举获取方向向量。
参数:
| 名称 | 说明 |
|---|---|
direction |
方向枚举。 |
返回:方向向量;对角方向保留 -1/1 分量而不归一化。
get_closest_direction¶
- API:
public - 首次版本:
8.0.0
static func get_closest_direction( raw_direction: Vector2, include_diagonal: bool = true, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D:
获取最接近二维输入的离散方向。
参数:
| 名称 | 说明 |
|---|---|
raw_direction |
原始二维输入。 |
include_diagonal |
是否允许返回对角方向。 |
default_direction |
输入为零时返回的默认方向。 |
返回:最接近的离散方向。
get_direction_from_vector¶
- API:
public - 首次版本:
8.0.0
static func get_direction_from_vector( direction_vector: Vector2, include_diagonal: bool = true, default_direction: Direction2D = Direction2D.NONE ) -> Direction2D:
按离散向量获取方向枚举。
参数:
| 名称 | 说明 |
|---|---|
direction_vector |
离散方向向量。 |
include_diagonal |
是否允许匹配对角方向。 |
default_direction |
未匹配时返回的默认方向。 |
返回:方向枚举。
get_opposite_direction¶
- API:
public - 首次版本:
8.0.0
获取反向方向。
参数:
| 名称 | 说明 |
|---|---|
direction |
方向枚举。 |
返回:反向方向。
get_opposite_vector¶
- API:
public - 首次版本:
8.0.0
获取反向方向向量。
参数:
| 名称 | 说明 |
|---|---|
direction_vector |
方向向量。 |
返回:反向方向向量。