Unity3d input axis

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");
### 回答1: 在Unity中,当出现"axis not setup"的警告时,意味着你尝试使用一个未设置的虚拟轴。虚拟轴是一种用于输入控制的概念,可以代表多个输入设备(例如键盘、鼠标、手柄等)上的不同输入轴(如水平、垂直、旋转等)。当尝试在代码中使用一个未设置的虚拟轴时,Unity会发出警告。 解决这个问题的方法是在Unity的输入管理器中设置一个对应的虚拟轴。你可以打开Unity编辑器,在顶部菜单栏选择"Edit",然后选择"Project Settings",再选择"Input"。在输入管理器中,你可以看到所有已设置的虚拟轴。 如果你需要在代码中使用一个虚拟轴,但在管理器中找不到它,你可以点击输入管理器右上方的"+"按钮来添加一个新的虚拟轴。在弹出的对话框中,你可以设置虚拟轴的名称、正方向键、负方向键、增量和死区等属性。确保你为代码中的使用设置了正确的名称和属性。 另外,请确保代码中的虚拟轴名称与管理器中设置的名称大小写一致,因为Unity对名称是区分大小写的。 总之,当你遇到"axis not setup"警告时,你需要在Unity输入管理器中设置一个对应的虚拟轴,或者确保你的代码中使用的虚拟轴名称与管理器中设置的一致,并且大小写也要匹配。 ### 回答2: "unityaxis not setup" 是Unity 引擎在使用过程中常见的错误提示之一。它意味着未设置轴(axis)的输入。轴在游戏中通常用来控制角色或物体的移动、旋转等操作。 当出现这个错误提示时,一般有以下几个可能的原因和解决方法: 1. 输入管理器中未设置轴:打开Unity编辑器,选择“Edit” -> “Project Settings” -> “Input”(或输入管理器)进行设置。在这个面板中,你需要指定轴的名称、正向键和逆向键,以及对应的键盘、鼠标或手柄的输入。 2. 脚本中未正确引用输入轴:在脚本中,你需要使用Input.GetAxis()或Input.GetAxisRaw()等方法来获取输入轴的值,并进行相应的操作。确保你正确地引用了正确的轴名称。 3. 轴名称拼写错误:检查轴的名称拼写是否正确,轴名称是区分大小写的。 4. 轴的名称与其他脚本冲突:如果你在不同的脚本中使用了相同的轴名称,这可能会导致冲突。尝试为每个脚本使用独特的轴名称来解决这个问题。 5. 游戏中未实际绑定轴的输入:如果你在游戏中没有实际使用键盘、鼠标或手柄来控制角色或物体的移动,Unity可能会认为轴未设置。确保你在游戏中检查输入是否被正确地绑定和触发。 总结来说,"unityaxis not setup" 错误常见于未正确设置轴输入的情况下。通过检查并设置输入管理器、正确引用轴名称、避免轴名称冲突以及确保在游戏中绑定轴的输入,你应该能够解决这个错误。 ### 回答3: 在Unity中,"Axis Not Set Up"是指未设置轴的错误消息。轴是Unity中一种用于输入和移动物体的方式。 当Unity中的Axis没有设置时,可能会导致以下问题: 1. 输入设备无法正常工作:如果未设置正确的轴以响应输入设备(如键盘、鼠标、触摸屏等),则这些设备可能无法与Unity项目进行交互。 2. 移动物体异常:Unity中的许多组件(如刚体、角色控制器等)使用轴输入来实现物体的移动。如果轴未设置,则可能会导致物体无法正确移动。 为解决该问题,可以按照以下步骤操作: 1. 打开Unity中的Input Manager:在Unity编辑器中,选择"Edit"(编辑)菜单,然后选择"Project Settings"(项目设置)。在项目设置窗口中,选择"Input"(输入)选项。 2. 设置轴:在输入设置窗口中,您会看到一些默认的轴设置(如水平和垂直)。您可以使用这些设置作为参考,或者根据自己的需求创建新的轴。点击"+"按钮添加一个新的轴,然后设置轴的名称、正向键和反向键等属性。 3. 测试轴:保存设置后,您可以在脚本中使用Input.GetAxis函数来获取轴的值,并测试轴是否正常工作。 总结一下,当Unity中出现"Axis Not Set Up"错误时,您应该打开Unity的输入设置并正确设置轴,以便输入设备和移动物体等功能能够正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值