44 lines
1.0 KiB
Markdown
44 lines
1.0 KiB
Markdown
# InputManager::GetAxis
|
|
|
|
读取一个具名逻辑轴的当前值。
|
|
|
|
```cpp
|
|
float GetAxis(const Containers::String& axisName) const;
|
|
```
|
|
|
|
## 行为说明
|
|
|
|
当前实现按以下规则计算返回值:
|
|
|
|
- 如果找不到该轴,返回 `0.0f`
|
|
- 如果正方向键当前按下,结果加 `1.0f`
|
|
- 如果负方向键当前按下,结果减 `1.0f`
|
|
|
|
所以当前结果通常是 `-1.0f`、`0.0f` 或 `1.0f`。如果正负方向同时按下,结果会相互抵消为 `0.0f`。
|
|
|
|
要特别注意:
|
|
|
|
- 当前实现没有平滑、插值、重力或灵敏度处理。
|
|
- 它不会读取 `InputAxis::GetValue()` 的内部值。
|
|
- 默认注册的 `Mouse X` 和 `Mouse Y` 轴当前都绑定为 `KeyCode::None`,因此结果始终为 `0.0f`。
|
|
|
|
## 参数
|
|
|
|
- `axisName` - 逻辑轴名称。
|
|
|
|
## 返回值
|
|
|
|
- `float` - 当前轴值。
|
|
|
|
## 示例
|
|
|
|
```cpp
|
|
float horizontal = XCEngine::Input::InputManager::Get().GetAxis("Horizontal");
|
|
```
|
|
|
|
## 相关文档
|
|
|
|
- [返回类型总览](InputManager.md)
|
|
- [GetAxisRaw](GetAxisRaw.md)
|
|
- [RegisterAxis](RegisterAxis.md)
|