我需要知道调用我的函数的绑定的名称是什么。但在
InputAction.CallbackContext
变量中,此信息缺失。
这是我的做法:
private void OnDisable()
{
movingBinds.PlayerMovingMap.Moves.performed -= ctx => MoveIt(ctx);
}
private void MoveIt(InputAction.CallbackContext ctx)
{
Debug.Log(ctx);
}
按下 A 时上下文变量的控制台输出(绑定名称
Left
):
{ action=PlayerMovingMap/Moves[/Keyboard/w,/Keyboard/s,/Keyboard/a,/Keyboard/d] phase=Performed time=5,94887570000014 control=Key:/Keyboard/a value=(0,0, -1,0) interaction= }
我按下了按键,即 Vecto2 值,但没有绑定名称。但我需要它,因为如果玩家决定将其密钥更改为
Left
,我就会得到 scr*wed。
如何在调用函数时获取绑定名称
MoveIt
?
谢谢你
你可以这样得到:
var binding = ctx.action.GetBindingForControl(ctx.control);
Debug.log(binding.value.name);
或者一行:
var compositePart = ctx.action.GetBindingForControl(ctx.control).Value.name