TL;DR:输入系统几天前工作了,不再触发任何东西,暂停。
几天前我尝试了新的输入系统,这真的很棒!我做了很多事情,试图了解使用它的最佳方式,最后,我的角色到处跳跃和移动,这太酷了!然后,我将代码合并到我们的开发分支中并上床睡觉。
今天,我想继续我的代码,但是我的角色不再移动,操作也没有被触发(即使在调试器中检测到输入),我真的不知道为什么。要么代码合并覆盖了一些重要的设置(我知道你在想什么,是的,“主动输入处理”设置为“两者”,我尝试只运行预览),要么我在小测试期间做了一些重要的事情,但我没有意识到。
所以我决定尝试在一个全新的项目上重现我的步骤,也许你们可以帮助我弄清楚我做错了什么?
1/ 创建一个新的 2D 项目(通过 Hub)
2/安装最新的软件包(版本0.9.0)
3/ 在该消息提示上单击“是”以激活设置中的新输入管理
4/ 重新启动 Unity Editor,因为即使消息说会重新启动,它也不会重新启动,然后检查项目设置(是的,它位于“Both”,是的,我的脚本运行时版本是 4.0)
5/ 创建一个新的 GameObject 并在其上添加 PlayerInput
6/ 单击“打开输入设置”并创建一个“InputSettings”资源
7/ 单击“创建操作...”来创建我的 ActionMap 资源
8/ 在我的“Player”ActionMap 上创建一个“TestAction”并将其设置为键“t”
9/ 创建一个新脚本“TestScript”,其中包含 OnTestAction() 方法(仅记录“test”)并启用测试映射/操作(只是为了确定):
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.PlayerInput;
public class TestScript : MonoBehaviour
{
void Start()
{
InputActionMap playerActionMap = GetComponent<PlayerInput>().actions.GetActionMap("Player");
playerActionMap.Enable();
playerActionMap.GetAction("TestAction").Enable(); //Just to be sure
}
public void OnTestAction()
{
Debug.Log("test");
}
}
10/像疯子一样按下“Play”并发送“T”来尝试显示调试(请注意,在调试器中,创建了一个用户,检测到我的“t”按下,我的 TestAction 存在并映射到“t”键上,但没有显示调试
交互式爱情
繁星coding
Cats萌萌
大话西游666
芜湖不芜
相关分类