Tom*_*ica 8 c# unity-game-engine
Unity .getAxis(string name)似乎返回用户输入(箭头,鼠标甚至操纵杆)产生的思想偏移.返回值方便地以<-1; 1>鼠标轮除外的间隔.
从各种代码示例中我可以看到许多获取输入的方法,但似乎没有实际的名称/输入列表.在我的情况下,我想使用wheel或PgUpand 来启用缩放PgDn.轮码如下所示:
movement.y -= ResourceManager.ScrollSpeed * Input.GetAxis("Mouse ScrollWheel");
Run Code Online (Sandbox Code Playgroud)
但是页面向下和向上翻页是什么?而且,一般来说,我怎么知道在这种方法中使用哪些名称?
Input.GetAxis和Input.GetButton(以及GetButtonDown和GetButtonUp)只返回输入管理器中定义的虚拟输入轴之一的状态.
返回值不需要在范围内[-1, 1].大多数表示绝对值的虚拟轴由-1和1之间的值表示.但是,有些轴返回相对运动,如预定义的"MouseWheel","Mouse X"和"Mouse Y".它们返回自上一帧以来轴已移动的量.
MouseWheel还有一些额外的"问题".增量值取自OS.如果用户将滚轮设置为每个"滚动单位"前进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;
Run Code Online (Sandbox Code Playgroud)
编辑
如果您想知道常用的键名,请查看常规游戏输入页面.在底部有一个最常见的键名列表,包括"向上翻页"和"向下翻页".输入管理器通常拒绝错误的密钥名称.因此,如果你输入一个,不聚焦输入字段,值保持不变,这是正确的.
如果按下按钮时设置了一个正按钮,虚拟轴将"慢慢"从0增加到1,具体取决于"灵敏度"设置.灵敏度就像一个加速因子.如果松开按钮,它将"慢慢"返回到0,具体取决于作为减速因子的"重力"值.
如果设置了正按钮和负按钮,则在按下正按钮时,轴可以双向增加到1,当按下负按钮时,轴可以减到-1.如果"snap"为true,如果按下相反的按钮而不是慢慢返回0然后开始向相反的方向生长,它将立即快速恢复为0.
"死"值定义了死区.如果轴的值小于dead(或者greatern而不是-dead),则将其视为0.这对于通常在其静止位置周围存在一些抖动的实际模拟输入设备非常重要.
在阅读文档时,应该清楚其余的属性,如"反转","类型"等.
可以定义两个具有相同名称的轴,如defaule"Horizontal"和"Vertical"轴.具有相同名称的轴被视为一个.
我认为这应该涵盖大部分输入管理器的东西.