Unity3d input axis

本文深入探讨Unity中如何整合键盘、摇杆与手柄输入,包括虚拟轴与按键的创建、配置及访问方法。详细介绍了如何通过简单的脚本接口进行配置,以及默认输入轴的设定与自定义输入轴的添加步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Conventional Game Input

Unity supports keyboard, joystick and gamepad input.

Virtual axes and buttons can be created in the Input Manager, and end users can configure Keyboard input in a nice screen configuration dialog.

Unity 支持 键盘 摇杆 手柄。

虚拟轴和按键可以在Input Manager中创建,最终用户可以在配置框中配置键盘输入。

You can setup joysticks, gamepads, keyboard, and mouse, then access them all through one simple scripting interface.

From scripts, all virtual axes are accessed by their name.

Every project has the following default input axes when it’s created:

  • Horizontal and Vertical are mapped to w, a, s, d and the arrow keys.
  • Fire1Fire2Fire3 are mapped to Control, Option (Alt), and Command, respectively.
  • Mouse X and Mouse Y are mapped to the delta of mouse movement.
  • Window Shake X and Window Shake Y is mapped to the movement of the window.
你可以设置摇杆,手柄,键盘和鼠标,访问他们都通过一个简单的可编辑界面。
在脚本中访问所有虚拟轴是通过名字实现的。
每一个新创建的工程都有一个如下的默认输入轴。

Adding new Input Axes

If you want to add new virtual axes go to the Edit->Project Settings->Input menu. Here you can also change the settings of each axis.

如果你想添加新的虚拟轴,请到Edit->Project Settings->Input菜单,在这里你也可以改变每个轴的设定。

You map each axis to two buttons on a joystick, mouse, or keyboard keys.

你可以映射一个轴到输入设备的两个按键。

Property: Function:
Name The name of the string used to check this axis from a script.脚本中使用轴的名字
Descriptive Name Positive value name displayed in the input tab of the Configuration dialog for standalone builds.配置窗口中正值的显示名字
Descriptive Negative Name Negative value name displayed in the Input tab of the Configuration dialog for standalone builds.配置窗口中负值的显示名字
Negative Button The button used to push the axis in the negative direction.负值按钮
Positive Button The button used to push the axis in the positive direction.正值按钮
Alt Negative Button Alternative button used to push the axis in the negative direction.可替代负值按钮
Alt Positive Button Alternative button used to push the axis in the positive direction.可替代正值按钮
Gravity Speed in units per second that the axis falls toward neutral when no buttons are pressed.不按键时轴回到中间值的速度
Dead Size of the analog dead zone. All analog device values within this range result map to neutral.死区大小,在死区内视作中值
Sensitivity Speed in units per second that the the axis will move toward the target value. This is for digital devices only.轴达到目标值的速度,只对数字设备有效
Snap If enabled, the axis value will reset to zero when pressing a button of the opposite direction.如果有效,按相反方向键轴设为0
Invert If enabled, the Negative Buttons provide a positive value, and vice-versa.如果有效,正负值按键交换
Type The type of inputs that will control this axis.控制轴的设备类型
Axis The axis of a connected device that will control this axis.控制这个虚拟轴的设备轴(不知道翻译对不)
Joy Num The connected Joystick that will control this axis.控制这个虚拟轴的摇杆号

Use these settings to fine tune the look and feel of input. They are all documented with tooltips in the Editor as well.Editor工具有提示

Using Input Axes from Scripts

You can query the current state from a script like this:在脚本里这样询问当前状态

 value = Input.GetAxis ("Horizontal"); 

An axis has a value between –1 and 1. The neutral position is 0. This is the case for joystick input and keyboard input.

轴的值在[-1,1],中间值为0,这是摇杆和键盘的输入情况。

However, Mouse Delta and Window Shake Delta are how much the mouse or window moved during the last frame. This means it can be larger than 1 or smaller than –1 when the user moves the mouse quickly.

但是,鼠标和窗口移动量是指他们在最后一帧中的变化量,这意味着用户快速移动鼠标时它可以大于1或小于-1,

It is possible to create multiple axes with the same name. When getting the input axis, the axis with the largest absolute value will be returned. This makes it possible to assign more than one input device to one axis name. For example, create one axis for keyboard input and one axis for joystick input with the same name. If the user is using the joystick, input will come from the joystick, otherwise input will come from the keyboard. This way you don’t have to consider where the input comes from when writing scripts.

可以用相同的名字创建多个轴。当获取输入值时,轴返回绝对值最大的量。这就可以将多个输入设备赋给同一轴名。比如建立一个键盘的轴,摇杆输入的相同名字的轴,如果用户摇杆输入源来自摇杆,用户用键盘输入源来自键盘,这样在脚本里就不用关心输入设备是哪种了。

Button Names

To map a key to an axis, you have to enter the key’s name in the Positive Button or Negative Button property in the Inspector.

The names of keys follow this convention:命名习俗

  • Normal keys: “a”, “b”, “c” …
  • Number keys: “1”, “2”, “3”, …
  • Arrow keys: “up”, “down”, “left”, “right”
  • Keypad keys: “[1]”, “[2]”, “[3]”, “[+]”, “[equals]”
  • Modifier keys: “right shift”, “left shift”, “right ctrl”, “left ctrl”, “right alt”, “left alt”, “right cmd”, “left cmd”
  • Mouse Buttons: “mouse 0”, “mouse 1”, “mouse 2”, …
  • Joystick Buttons (from any joystick): “joystick button 0”, “joystick button 1”, “joystick button 2”, …
  • Joystick Buttons (from a specific joystick): “joystick 1 button 0”, “joystick 1 button 1”, “joystick 2 button 0”, …
  • Special keys: “backspace”, “tab”, “return”, “escape”, “space”, “delete”, “enter”, “insert”, “home”, “end”, “page up”, “page down”
  • Function keys: “f1”, “f2”, “f3”, …

The names used to identify the keys are the same in the scripting interface and the Inspector.

 value = Input.GetKey ("a");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值