c# - Unity Input.getAxis 可以使用哪些参数?

标签 c# unity3d

团结 .getAxis(string name) 似乎返回了用户输入(箭头、鼠标甚至操纵杆)产生的思想偏移。返回值方便地在 <-1; 1> 区间内除了鼠标滚轮。

从各种代码示例中,我可以看到许多获取输入的方法,但似乎没有实际的名称/输入列表。就我而言,我想使用滚轮或 PgUpPgDn 启用缩放。车轮代码如下所示:

movement.y -= ResourceManager.ScrollSpeed * Input.GetAxis("Mouse ScrollWheel");

但是向下翻页和向上翻页呢?而且,一般来说,我如何才能知道在此方法中使用哪些名称?

最佳答案

Input.GetAxisInput.GetButton (以及 GetButtonDownGetButtonUp )只返回 Input manager 中定义的虚拟输入轴之一的状态.

返回值不需要在 [-1, 1] 范围内。大多数表示绝对值的虚拟轴由 -1 和 1 之间的值表示。但是,有些轴返回相对运动,如预定义的“MouseWheel”、“Mouse X”和“Mouse Y”。它们返回自上一帧以来轴移动的量。

MouseWheel 有一些额外的“问题”。增量值取自操作系统。如果用户将滚轮设置为每个“滚动单位”前进 3 行,您将获得 3 的倍数的值。如果您设法足够快地旋转滚轮,您可能会获得大于 3 或小于 -3 的值。

PageUp 或 PageDown 没有默认轴,但您可以根据需要添加它们。但要注意,GetAxis 将返回虚拟轴的状态。因此,当您按住正按钮时,只要按住按钮,您就会得到一个“1”。如果您想收听事件,则必须使用 GetButtonDown/GetButtonUp。

但是,如果您想检查某个键,通常使用 GetKeyDown 会更简单。/GetKeyUp这需要 KeyCode .

类似于:

if(Input.GetKeyDown(KeyCode.PageUp))
    movement.y -= 1;
if(Input.GetKeyDown(KeyCode.PageDown))
    movement.y += 1;

编辑
如果您想知道常用的键名,请查看 Conventional Game Input页。在底部有一个最常见的键名列表,包括“page up”和“page down”。输入管理器通常拒绝错误的键名。因此,如果您输入一个,将焦点移到输入字段并且值保持不变,那么它是正确的。

如果您在每次按下按钮时设置正按钮,虚拟轴将“缓慢”从 0 增加到 1,具体取决于“灵敏度”设置。灵敏度就像一个加速因子。如果松开按钮,它会“缓慢”返回 0,具体取决于作为减速因子的“重力”值。

如果您设置一个正极按钮和一个负极按钮,当按下正极按钮时,轴可以双向上升到 1,当您按下负极按钮时,轴可以双向上升到 -1。如果“snap”为真,那么如果您按下相反的按钮,它会立即恢复为 0,而不是慢慢回到 0,然后开始向相反的方向增长。

“死区”值定义了死区。如果轴的值小于 dead(或大于 -dead),它将被视为 0。这对于通常在其静止位置周围有一些抖动的实际模拟输入设备很重要。

阅读文档时应该清楚其余属性,如“invert”、“Type”等。

可以定义两个具有相同名称的轴,例如默认的“水平”轴和“垂直”轴。具有相同名称的轴被视为一个轴。

我认为这应该涵盖了输入管理器的大部分内容。

关于c# - Unity Input.getAxis 可以使用哪些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26724888/

相关文章:

如果端口已在 Mono 中打开,C# SerialPort.Open() 不会抛出异常

算法中的 C# 性能波动

git - Unity 和 git : multiproject structure and symbolic links, 更好的解决方案?

c# Generics - 意外的性能结果

c# - 在没有对话框的情况下以编程方式保存 MHT

algorithm - 将许多小多边形组合成一个(一些)大多边形

c# - 在 Unity 中播放动画后对象不保持比例

c# - 如何使用 SimpleJSON 显示来自 json 的数据?

c# - 如何开发负载平衡友好的 Web 应用程序

c# - 在将const default添加到构造函数参数后,为什么我的编译器无法识别某些方法?