Не изменяется управление при перевыборе Unity (Input Action Asset)
второй день пытаюсь понять, в чем проблема - по какой-то причине не переназначаются кнопки управления. Причем в списке на UI панели с управлением кнопка меняется, а фактически управление остается прежним. Таким образом переназначается кнопка:
inputActionAsset.FindActionMap(actionMap.name).ChangeBinding(index)
.WithPath($"<Keyboard>/{((KeyCode)i).ToString().ToLower()}");
А так происходит сохранение и загрузка:
PlayerPrefs.SetString("BindingSave", inputActionAsset.SaveBindingOverridesAsJson());
inputActionAsset.LoadBindingOverridesFromJson(PlayerPrefs.GetString("BindingSave"));
Сохранение корректно загружается, но, аналогично вышеописанному, само управление не меняется. С чем может быть связана проблема?
Ответы (1 шт):
Ситуация, которую вы описываете, может быть связана с отсутствие вызова Enable() после загрузки настроек. После загрузки новых биндингов с помощью inputActionAsset.LoadBindingOverridesFromJson(), вам нужно убедиться, что вы вызываете метод Enable() для каждого ActionMap. Это нужно для того, чтобы убедиться, что обновленные настройки применились. Пример:
inputActionAsset.LoadBindingOverridesFromJson(PlayerPrefs.GetString("BindingSave")); inputActionAsset.FindActionMap("YourActionMap").Enable();
Так же, убедитесь, что вы загружаете настройки биндингов до того, как начинается игровая сессия, чтобы все биндинги были корректно применены до того, как игрок начнет взаимодействовать с игрой.