我正在使用Unity的新(ish)输入系统--Unity 2021.3.12f的v1.4.4(发布版)包,它在编辑器模式下工作正常,但在构建模式下根本不工作。没有错误或崩溃--只是在使用构建的exe时对鼠标、键盘、游戏手柄或操纵杆没有响应。我已经用尽了谷歌的前3页,试图找到一个解决方案,我正在寻找更多的想法。
我尝试过的事情:
- 软件包的1.5.0测试版
- 更改清单. json
- 重新安装软件包
- 仅构建32位
- 在项目设置中将输入法模式更改为"both"和"new"
- 使用输入系统资产触发事件,而不是示例化自动生成类的版本('com. unity. inputsystem:InputActionCodeGenerator')
- 重新生成上述文件
- 重建项目
下面是一个代码片段:
using UnityEngine.InputSystem;
public class MainCameraController : MonoBehaviour
{
CityInput cityInput; // my input asset auto generated class
void OnEnable()
{
if (cityInput == null) cityInput = new CityInput();
cityInput.Enable();
}
void OnDisable()
{
cityInput.Disable();
}
void Update()
{
// stuff....
moveDirection = cityInput.Player.MoveDirection.ReadValue<Vector2>().normalized;
// stuff....
}
}
相关文档/页面:
https://forum.unity.com/threads/new-input-system-doesnt-work-on-build.1188934/
https://gamedev.stackexchange.com/questions/183243/unitys-new-input-system-does-not-work-after-building-the-game
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/HowDoI.html
https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/Actions.html#creating-actions
要重新创建设置(MCVE):
- 从程序包管理器安装"输入系统" 1.4.4。
- 创建一个新的输入资产,详细说明哪些键/按钮与您想要的名称操作相关,例如左/右/上/跳转等。请参阅文档。
- 使用Unity的自动生成器脚本生成所需的C#,如上文所链接,方法是单击资产并使用"生成C#"切换和应用按钮。
- 将using UnityEngine.InputSystem指令添加到脚本中。
- 在OnEnable或OnAwake中示例化自动生成的脚本的副本。
- 按照上面的代码片段和链接的文档使用UnityEngine.InputSystem中的新方法,例如yourAutoGeneratedInputScript.Player.MoveDirection.ReadValue()。
- 构建并运行包含移动脚本的场景。
1条答案
按热度按时间gab6jxml1#
原来这是由于使用玩家首选项来存储移动速度之类的东西--它们在构建的游戏中与编辑器中有不同的存储位置:player prefs