Unity .getAxis(string name)
似乎返回用户输入(箭头,鼠标甚至操纵杆)生成的思维偏移。除了鼠标滚轮之外,返回值方便地以<-1; 1>
为间隔。
从各种代码示例中我可以看到许多获取输入的方法,但似乎没有实际的名称/输入列表。在我的情况下,我想使用wheel或 PgUp 和 PgDn 启用缩放。轮码如下所示:
movement.y -= ResourceManager.ScrollSpeed * Input.GetAxis("Mouse ScrollWheel");
但是页面向下和向上翻页是什么?而且,一般来说,我怎么知道在这种方法中使用哪些名称?
答案 0 :(得分:9)
Input.GetAxis和Input.GetButton(以及GetButtonDown和GetButtonUp)只返回Input manager中定义的虚拟输入轴之一的状态。
返回值不需要在[-1, 1]
范围内。大多数表示绝对值的虚拟轴由-1和1之间的值表示。但是,有些轴返回相对运动,如预定义的&#34; MouseWheel&#34;,&#34;鼠标X&#34;和&#34;鼠标Y&#34;。它们返回自上一帧以来轴移动的数量。
MouseWheel有一些额外的问题&#34;。增量值取自OS。如果用户已将滚轮设置为每个&#34;滚动单位&#34;前进3行,您将获得3的倍数值。如果您设法快速旋转滚轮,则可能获得大于3的值或小于-3。
PageUp或PageDown没有默认轴,但您可以根据需要添加它们。但要小心,GetAxis将返回虚拟轴的状态。因此,当您按住正面按钮时,您将获得一个&#34; 1&#34;只要按住按钮。如果你想听事件,你必须使用GetButtonDown / GetButtonUp。
但是,如果您想查看某个密钥,通常可以更简单地使用GetKeyDown / GetKeyUp,这需要KeyCode。
类似的东西:
if(Input.GetKeyDown(KeyCode.PageUp))
movement.y -= 1;
if(Input.GetKeyDown(KeyCode.PageDown))
movement.y += 1;
<强> 修改 强>
如果您想知道常用的密钥名称,请查看Conventional Game Input页面。在底部有一个最常见的键名列表,包括&#34;页面向上&#34;并且&#34;向下翻页&#34;。输入管理器通常拒绝错误的密钥名称。因此,如果您输入一个,未聚焦到输入字段并且值保持不变,那么它是正确的。
如果按下按钮时设置了一个正按钮,虚拟轴将慢慢地#34;根据&#34;灵敏度&#34;从0增加到1设置。灵敏度就像一个加速因子。如果您松开按钮,它将返回&#34;慢慢地&#34;回到0取决于&#34;重力&#34;值是一个减速因子。
如果您设置了正按钮和负按钮,当按下正按钮时,轴可以双向上升到1,当按下负按钮时,轴可以下降到-1。如果&#34; snap&#34;如果你按下相反的按钮而不是慢慢回到0然后开始向相反方向增长,它会立即回弹到0。
&#34;死了&#34; value定义了死区。如果轴的值小于dead(或者greatern而不是-dead),则将其视为0.这对于通常在其静止位置周围有一些抖动的实际模拟输入设备非常重要。
其余属性如&#34;反转&#34;,&#34;类型&#34;所以在阅读文档时应该清楚。
可以定义两个具有相同名称的轴,如defaule&#34; Horizontal&#34;和&#34;垂直&#34;轴。具有相同名称的轴被视为一个。
我认为这应该涵盖大部分输入管理器的东西。