🌊
【解決】UnityのInputActionを上書き
参考
解決法
ポイントは
●SwitchCurrentActionMapでいったん別のマップに切り替えてから行うこと
●new InputBindingの中で
- 不必要ななことをしないこと(nameを指定したらダメになった)
- overridePath, overrideProcessorsを利用すること
Composite(WASD)みたいなやつの場合、合計5つ分インデックスを占有するみたい。
void OverrideInput(int index, string processor)
{
PlayerInput _playerInput = GameObject.Find("Player").GetComponent<PlayerInput>();
InputAction _lookAction = _playerInput.actions.FindActionMap("Player").FindAction("Look");
_playerInput.SwitchCurrentActionMap("Menu");
_lookAction.ApplyBindingOverride(0, new InputBinding { overridePath="<Mouse>/delta" overrideProcessors = "scaleVector2(x=0.4, y=0.15),invertVector2(invertX=false,invertY=true)" });
_playerInput.SwitchCurrentActionMap("Player");
}
Discussion