Перейти к основному содержимому

Генератор BindingOverrides

Спланируйте, как сохранять, загружать и сбрасывать переопределения повторной привязки.

Ваш выбор формирует ключи хранения, поведение сброса и минимальный шаблон C# с помощью SaveBindingOverridesAsJson/LoadBindingOverridesFromJson. Прежде чем отправлять пресеты, выполните сопряжение с программой проверки конфликтов.

// Starter pattern (Input System) — adapt namespaces
using UnityEngine;
using UnityEngine.InputSystem;

public static class BindingPersistence
{
    const string Key = "bindings_v1_overrides";

    public static void SaveOverrides(InputActionAsset asset)
    {
        var json = asset.SaveBindingOverridesAsJson();
        System.IO.File.WriteAllText(System.IO.Path.Combine(Application.persistentDataPath, "bindings.json"), json);
    }

    public static void LoadOverrides(InputActionAsset asset)
    {
        var path = System.IO.Path.Combine(Application.persistentDataPath, "bindings.json"); var json = System.IO.File.Exists(path) ? System.IO.File.ReadAllText(path) : "";
        if (!string.IsNullOrEmpty(json))
            asset.LoadBindingOverridesFromJson(json);
    }

    public static void ResetToDefaults(InputActionAsset asset)
    {
        asset.LoadBindingOverridesFromJson(null);
        var path = System.IO.Path.Combine(Application.persistentDataPath, "bindings.json"); if (System.IO.File.Exists(path)) System.IO.File.Delete(path);
    }
}
Будет ли это скомпилировано в моем проекте?
Сниппеты — это шаблоны: настраивайте пространства имен, ссылки на ресурсы и обработку ошибок для вашей игры.
Почему следует избегать привязки индексов?
Изменение порядка привязок в редакторе меняет индексы; стабильные идентификаторы или пути лучше переносят редактирование активов.