Unity3d_Rewired官方文档翻译:要点(二):Rewired Editor->Setting、Tools

发布时间 2024-01-12 17:57:52作者: 尽头之外

仅翻译了官方文档中的Essentials(要点)、Concepts(概念)两部分,这是文档中最重要的部分,理解了这两部分的内容应该足以让你将Rewired运用到你的项目中,之后再去阅读文档的其他部分也能更容易理解。

斜体加下划线部分为添加的注解,非官方文档内容。若你发现有翻译、注解不正确的,请留言告知,以免再继续误导他人,感谢。

官方文档地址

要点

Rewired Editor

通过Rewired Editor,您可以创建Player、Action、控制器映射、自定义控制器、配置设置等。

Setting页面

"Setting"页面允许您更改当前Input Manager的选项。可用选项如下:

更新循环

Update Loop: 在一个或多个游戏循环中更新输入。若勾选多个,将在所选的每个循环中更新输入。每个循环的更新和跟踪都是独立的,因此所有输入调用在任一循环中都能正常工作。如果需要同时从 Update 和 FixedUpdate 获取输入,请选择多个。
Update 在Update循环中更新输入。必须
FixedUpdate 在FixedUpdate循环中更新输入。如果在未启用此功能的情况下尝试从 FixedUpdate 循环中获取输入,就会错过一些输入数据。例如:GetButtonDown 和 GetKeyDown 并不总是正确返回。
OnGUI 在OnGUI 循环中更新输入。只有在需要 GetButtonDown 在 Unity 图形用户界面中工作时才有必要。
警告:由于 OnGUI 的工作方式,启用此功能将导致每帧分配 300-500 字节内存。这将增加垃圾回收的开销。

平台设置

Platform Settings: 某些构建平台的设置可以单独设置。单击平台名称,选项将显示在下方。对于影响所有构建平台的设置,请单击 "All "按钮。
All:
Use Physical Keys (Unity) 如果启用,无论使用何种键盘布局(例如AZERTY键盘(源于法国的一种键盘布局)),键盘按键都将映射到 US 101 键键盘上的物理位置。这对于制作独立于本地的输入布局非常有用。例如WASD 移动。如果启用,返回的按键代码将与 US 101 键布局一致,字形和帮助文本将向用户显示错误信息。例如,AZERTY 键盘上的 A 键位于 US 101 键盘上 Q 键的位置,而 A 键返回的 KeyCode 将是 KeyCode.Q。
建议禁用此选项. See this for more information.
Disable Native Input 强制将 Unity 输入作为输入源。这将禁用所有外部输入源,如 Raw Input、Direct Input、XInput 和本机 OSX。
警告:Unity 输入在某些平台上不允许热插拔。如果需要热插拔,请勿勾选此选项。
Disable Keyboard 在所有平台上禁用键盘输入?禁用键盘输入可以略微提高性能。
Disable Mouse 在所有平台上禁用鼠标输入?禁用鼠标输入可以略微提高性能。
Ignore Input When App Not In Focus 如果应用程序未处于焦点,则忽略输入。此设置在某些平台上无效
注意:禁用此功能并不能保证在应用程序不在焦点时处理输入。应用程序是否接收输入取决于
A) 输入设备类型
B) 当前平台
C) 使用的输入源
Windows:
Input Source Windows Standalone平台的主要输入源。
Raw Input - 使用原始输入作为输入源。注意:原始输入与直接输入相比具有明显优势,如更好地支持蓝牙控制器、支持某些控制器上的更多元素、更好的控制器识别等。不需要任何额外的库。Windows 控制面板操纵杆校准不会影响操纵杆轴。
XInput - 使用 XInput 作为输入源。这将仅使用 XInput。所有非 XInput 兼容控制器都将无法使用。要同时支持 XInput 和非 XInput 控制器,请使用原始输入或直接输入,并启用 "使用 XInput "选项。支持 XBox 控制器双电机振动、独立触发值,但只能同时支持 4 个兼容 XInput 的控制器。需要在 Windows XP 上安装DirectX end-user运行时。
Windows Gaming Input - 使用 Windows.Gaming.Input 作为输入源。这将仅对控制器使用 Windows.Gaming.Input。所有非 Windows Gaming Input 兼容控制器都将无法使用。目前只支持游戏手柄。要支持所有控制器类型,请使用原始输入或直接输入,并启用"Use Windows Gaming Input"选项。支持 XBox 控制器 4 电机振动、独立触发值,并同时支持 4 个以上兼容 XInput 的控制器。(需要 Windows 10,2018 年 10 月更新版本 1809(10.0.17763.0)或更高版本)。在旧版本的 Windows 系统上,将退回到其他输入源)。
Direct Input - 使用直接输入作为输入源。可能需要安装 DirectX end-user运行时才能支持直接输入。Windows 控制面板操纵杆校准设置会影响操纵杆轴。
SDL2 - 输入源使用 SDL2。该选项要求安装 SDL2 运行库。注意:SDL2 支持的设备不如其他本地输入源多。
Unity Input - 使用 Unity 后备输入。
Use Windows Gaming Input 在 Windows 上,兼容设备使用 Windows.Gaming.Input。与 Windows Gaming Input不兼容的设备将由主输入源处理。支持 XBox 控制器 4 电机振动、独立触发值,并同时支持 4 个以上兼容 XInput 的控制器。
(需要 Windows 10,2018 年 10 月更新版本 1809(10.0.17763.0)或更高版本)。在旧版本的 Windows 系统上,将退回到其他输入源)。
如果同时启用了 "Use XInput "和 "Use Windows Gaming Input",如果系统无法使用 Windows Gaming Input,则 XInput 将用作兼容设备的后备输入源。否则,主输入源将被用作备用输入源。
(仅当输入源设置为原始输入或直接输入时可用)。
Use XInput 在 Windows 系统中,兼容设备使用 XInput。与 XInput 不兼容的设备将由主输入源处理。支持 XBox 控制器双电机振动、独立触发值,但同时仅支持 4 个兼容 XInput 的控制器。需要在 Windows XP 上安装 DirectX end-user运行时。
如果同时启用了 "Use XInput "和 "Use Windows Gaming Input",如果系统无法使用 Windows Gaming Input,XInput 将被用作兼容设备的后备输入源。否则,主输入源将被用作备用输入源。
(仅当输入源设置为原始输入、直接输入或 Windows Gaming Input时可用)。
Joystick Refresh Rate 操纵杆刷新率,单位为帧/每秒。如果您需要在高帧速率下(如音乐节拍游戏)获得更高精度的输入计时,请将其设置为较高值。数值越大,CPU 占用率越高。请注意,当游戏以较低帧频运行时,将此值设置得非常高也不会带来更高精度的输入。
此设置仅适用于使用单独线程轮询手柄输入值的输入源(目前为直接输入、XInput 和 Windows Gaming Input)。此设置不适用于基于事件的输入源,如原始输入。
Native Mouse Handling 使用本地库处理鼠标。启用此功能将消除与 Unity 鼠标处理相关的某些错误。
(仅当输入源设置为原始输入或直接输入时可用)。
Native Keyboard Handling 使用本地库处理键盘输入。
(仅当输入源设置为原始输入或直接输入时可用)。
Enhanced Device Support 为某些设备启用底层增强支持。如果对特定设备提供增强支持,这将启用特定设备的功能,如振动/力反馈、灯光、陀螺仪、加速计、触摸板等。
(仅当输入源设置为原始输入时可用)。
OSX:
Input Source OSX 独立平台的主要输入源。
Native - 输入源使用原生输入。这能提供最佳的设备支持。
Game Controller(游戏控制器)- 输入源使用 Apple Game Controller 框架。这仅支持游戏控制器框架支持的设备。这可能不包括本地输入源支持的所有设备。
SDL2 - 输入源使用 SDL2。可能需要在 OSX 中使用 Steam Streaming 和 Steam Controller 支持。此选项要求安装 SDL2 运行库。注意:SDL2 支持的设备不如其他本地输入源多。
Unity Input - 使用 Unity 后备输入。
Use Game Controller Framework 使用兼容设备的 Apple Game Controller Framework。
(仅当输入源设置为原生时可用)。
Assign Joysticks by System Player Id 如果启用该选项,操纵杆将根据系统分配的原生玩家 ID 分配给Player。该选项可确保手柄在自动分配时与正确的Player匹配。该选项会覆盖其他一些操纵杆自动分配设置。如果在一个Player的系统玩家 ID 下发现多个手柄,则会为该Player分配一个以上的手柄。
注意:该选项仅适用于由 Apple Game Controller Framework 处理的设备。它不适用于由 IO Kit 或任何其他输入源处理的 HID 设备。
Enhanced Device Support 为某些设备启用底层增强支持。如果对特定设备提供增强支持,这将启用特定设备的功能,如振动/力反馈、灯光、陀螺仪、加速计、触摸板等。
(仅当输入源设置为原始输入时可用)。
Linux:
Input Source Linux Standalone平台的主要输入源。
Native - 输入源使用原生输入。这能提供最佳的设备支持。
SDL2 - 使用 SDL2 作为输入源。可能需要在 Linux 中支持 Steam Streaming 和 Steam Controller。此选项需要安装 SDL2 运行库。注意:SDL2 支持的设备不如其他本地输入源多。
Unity Input - 使用 Unity 后备输入。
Enhanced Device Support 为某些设备启用底层增强支持。如果对特定设备提供增强支持,这将启用特定设备的功能,如振动/力反馈、灯光、陀螺仪、加速计、触摸板等。
Linux 上的增强设备支持要求最终用户设置 UDEV 规则。更多信息,请参阅此处See this for more information
(仅当输入源设置为原生时可用)。
Windows UWP:
Input Source Windows 10 通用平台的主要输入源。
Native - 输入源使用原生输入。这将提供最佳的设备支持。
Unity Input - 使用 Unity 后备输入。
Use Gamepad API 在兼容设备上使用 Windows.Gaming.Input.Gamepad。还可为兼容设备启用振动等特殊功能。
(仅当输入源设置为原生时可用)。
Use HID API 这可以支持旧式游戏手柄、安卓游戏手柄、飞行控制器、方向盘等。要使用此功能,必须在应用程序清单文件中添加对 HID 游戏手柄和操纵杆的支持。有关详情,请参阅特殊平台支持 -> Windows 10 通用文档。
(仅当输入源设置为原生时可用)。
Android:
Support Unknown Gamepads 使用标准化的 Android 游戏手柄布局,将所有未识别的控制器视为游戏手柄。所有已识别的控制器都将正常处理。
警告虽然大多数 Android 游戏手柄都符合这一布局,但也有例外。此外,启用该选项后,所有未识别的非游戏手柄设备将仅限于使用游戏手柄上的元素集。如果你的游戏需要支持 Android 游戏手柄以外的设备,请禁用此选项。
此选项仅适用于安卓平台。
Xbox One:
Input Source Xbox One 平台的主要输入源。
Native - 输入源使用原生输入。这能提供最佳的设备支持。
Unity Input - 使用 Unity 后备输入。
Each Platform: 这里的选项会出现在所有的平台设置页面中。【上面没有列举出来的平台基本都只有下面这几项设置选项,例如:IOS、PS4、Switch、WebGL等
Disable Keyboard 在所有平台上禁用键盘输入?禁用键盘输入可以略微提高性能。
Disable Mouse 在所有平台上禁用鼠标输入?禁用鼠标输入可以略微提高性能。
Ignore Input When App Not In Focus 如果应用程序未处于焦点,则忽略输入。此设置在某些平台上无效
注意:禁用此功能并不能保证在应用程序不在焦点时处理输入。应用程序是否接收输入取决于
A) 输入设备类型
B) 当前平台
C) 使用的输入源

操纵杆自动分配设置

Joystick Auto-Assignment: 注意:"操纵杆自动分配 "仅适用于操纵杆(键盘或鼠标以外的控制器)。"操纵杆自动分配 "不会考虑玩家是否已分配键盘映射,因此不会跳过为使用键盘的玩家分配操纵杆。
Auto-Assign Joysticks 在Player连接时自动为其分配操纵杆。
Max Joysticks Per Player 允许为一名Player分配多少个手柄?如果启用,连接的操纵杆将分配给每个Player,但最多不超过此限制。
Assign To Playing Players Only 只为 isPlaying = true 的Player分配操纵杆。非游戏Player不会被分配操纵杆。
Distribute Joysticks Evenly 自动分配操纵杆时,首先分配给操纵杆数量最少的Player。分配的操纵杆数量将不超过 "Max Joysticks Per Player "的上限。
Reassign To Previous Owner 当手柄断开并重新连接时,会尝试将手柄重新分配给上次分配的玩家。

全局设置

Global Settings:
Default Joystick Dead Zone Type 操纵杆轴死区的默认计算类型。
Radial(径向):合并 X 和 Y 轴,并根据矢量长度计算死区。这样就能以圆周运动的方式平滑扫描。这是大多数游戏的最佳选择。
Axial(轴向):X 轴和 Y 轴独立计算。如果您的游戏需要更精确的 4 向移动,请使用此选项(如某些平台游戏、棋类游戏等)。
此设置仅适用于已识别的控制器上的操纵杆。
Default Joystick Sensitivity Type 操纵杆灵敏度的默认计算类型。
Radial(径向):结合 X 和 Y 轴,根据矢量长度计算灵敏度。
Axial(轴向):X 轴和 Y 轴单独计算。
此设置仅适用于已识别的控制器上的操纵杆。
Default Axis Sensitivity Type 确定轴的灵敏度的默认计算方式。
Multiplier(相乘):数值乘以灵敏度。
Power(幂):结果将是数值的灵敏度次幂。
当灵敏度接近 0 时,轴靠近零位/中心位置的灵敏度会增加,而靠近最大位置的灵敏度会降低。
当灵敏度超过 1 时,轴靠近零位/中心位置的灵敏度会降低,而靠近最大位置的灵敏度会提高。
Curve(曲线):数值乘以曲线上的一个点。
Multiplier和Power里面提到的用于运算的灵敏度是Input Behaviour里面的"Joystick Axis Sensitivity"属性
Activate Action Buttons on Negative Value 决定Action如何计算按钮值。如果启用,在使用 player.GetButton 查询时,具有负或正轴值的操作将返回 True。如果禁用,使用 player.GetButton 查询时,具有负轴值的操作将始终返回 False,并且必须使用 player.GetNegativeButton 查询。
启用时,摇杆向上推、向下推都会收到按钮按下消息。禁用时,只有摇杆向上推才会收到按钮按下消息。如果你设置的摇杆向上推为正值、向下推为负值的话。
Force 4-Way Hats 强制将识别到的操纵杆上的所有 8 向摇杆视为 4 向摇杆。如果启用,所有摇杆的对角方向都将激活相邻的 2 个基本方向按钮,而不是转角按钮。如果您需要操纵杆的摇杆表现得像 D-Pads(十字键) 而不是 8 向摇杆,这将非常有用。【例如将摇杆推到右上角,将激活上、右两个方向而不是右上
Throttle Calibration Mode 确定如何校准已识别控制器上的阈值。默认情况下,阈值的校准范围为 0 至 +1。这适合大多数飞行和赛车游戏。有些游戏可能需要 -1 至 +1 的范围,例如太空飞行游戏,负值表示反向推力。更改此设置将把所有阈值校准恢复为所选校准模式的默认值。
Defer Controller Connected Events On Start 将 Rewired 初始化时已连接控制器的控制器连接事件推迟到 Start(开始)事件,而不是初始化期间。通常情况下,由于 Rewired 初始化时其他脚本还无法订阅控制器连接事件,因此无法在运行时开始时接收控制器连接事件。启用此选项后,控制器连接事件将推迟到开始事件(Start)时发生,从而允许脚本在唤醒(Awake)时订阅控制器连接事件,并仍能接收事件回调。如果禁用,运行时启动前已连接控制器的控制器连接事件将被错过。
Logging 确定内部日志记录的级别。

编辑器设置

Editor Settings:
Allow Input in Editor Scene Views 如果启用,当任何场景视图有焦点时都允许输入。当原生输入未用作设备的输入源时,该选项将不起作用。
注意:由于 Unity 编辑器提供的有关当前焦点状态的信息有限,启用此选项后,在 OSX 和 Linux 上,当 Unity 编辑器不在焦点状态时,仍将处理输入。

Tools页面

导出常量

允许您导出当前Input Manager的所有Actions、Map Categories和Layout的常量列表。在与 Rewired API 交互时,可以用这些常量代替字符串。点击 "导出 "将创建一个 CS 文件,该文件必须保存在项目中的某个位置。

注意:导出的常量仅对该Input Manager有效。此外,如果您从 Rewired 输入管理器中添加或删除项目,则必须再次导出该列表。

(更多信息,请参阅How To's - Exporting constants for use in scripting)。

All Caps Constant Names 常量名称将用大写字母书写。
Use Namespace 将所有导出类封装在一个命名空间中。
Namespace 命名空间名称。只允许使用有效的 C# 命名空间字符。
Use Parent Class 将所有导出类封装在一个父类中,以便更好地组织。
Parent Class Name 父类的名称。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
Export Players 将Players作为常量导出到一个类中。
Players Class Name 包含 Player 常量的类名。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
Export Actions 将Actions作为常量导出到一个类中。
Actions Class Name 包含 Action 常量的类名。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
Include Action Category 在Action列表中包含Action Category(动作类别)名称。
Create Action Category Classes 如果启用,将为每个Action Category(动作类别)创建一个单独的类,并在这些类中生成Action常量,常量名将只使用Action名称。
示例:public const int Jump = 1;
如果禁用,则在每个常量的名称中包含动作类别。在最终常量名称中,动作类别名称将排在Action名称之前。
示例: public const int Default_Jump = 1;
Export Map Categories 将Map Categories作为常量导出到一个类中。
Map Categories Class Name 包含Map Categories常量的类名。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
Export Layouts 将Layouts作为常量导出到一个类中。
Layouts Class Name 包含Layout常量的类的名称。只允许使用有效的 C# 类名字符。该类名必须是唯一的。Layout常量将被封装在一个以Layout类型命名的附加类中。
Export Custom Controllers 将Custom Controllers作为常量导出到一个类中。
CC Class Name 包含Custom Controllers常量的类名称。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
CC Axes Class Name 包含轴常量的类名称。只允许使用有效的 C# 类名字符。该类名必须是唯一的。
CC Buttons Class Name 包含按钮常量的类名称。只允许使用有效的 C# 类名字符。该类名必须是唯一的。

数据管理

Import Data 从文件导入数据。导入的数据可以替换或合并现有数据。
Export Data 将所有数据导出到文件。
Compact Ids 这将重新编号所有 ID,使其从 0 开始,没有间隙。