Пример #1
0
    public void LoadKeybinds()
    {
        if (PlayerPrefs.HasKey("ControlOverrides"))
        {
            BindingWrapperClass bindingList = JsonUtility.FromJson(PlayerPrefs.GetString("ControlOverrides"),
                                                                   typeof(BindingWrapperClass)) as BindingWrapperClass;

            Dictionary <Guid, string> overrides = new Dictionary <Guid, string>();
            foreach (var item in bindingList.bindingList)
            {
                overrides.Add(new Guid(item.id), item.path);
            }

            foreach (var map in actions.actionMaps)
            {
                var bindings = map.bindings;
                for (var i = 0; i < bindings.Count; ++i)
                {
                    if (overrides.TryGetValue(bindings[i].id, out string overridePath))
                    {
                        map.ApplyBindingOverride(i, new InputBinding {
                            overridePath = overridePath
                        });
                    }
                }
            }
        }
    }
    public void LoadPlayerBindings()
    {
        if (PlayerPrefs.HasKey("ControlOverrides"))
        {
            BindingWrapperClass bindingList = JsonUtility
                                              .FromJson(PlayerPrefs.GetString("ControlOverrides")
                                                        , typeof(BindingWrapperClass)) as BindingWrapperClass;

            foreach (var map in InputActions.asset.actionMaps)
            {
                var bindings = map.bindings;

                for (var i = 0; i < bindings.Count; ++i)
                {
                    if (!bindingList.bindings
                        .Exists(obj => obj.id == bindings[i].id.ToString()))
                    {
                        continue;
                    }

                    BindingSerializable overrideBind = bindingList.bindings
                                                       .Find(obj => obj.id == bindings[i].id.ToString());

                    map.ApplyBindingOverride(i, new InputBinding {
                        overridePath = overrideBind.path
                    });
                }
            }
        }
    }
Пример #3
0
    /// <summary>
    /// Loads control overrides from playerprefs
    /// </summary>
    public void LoadRebinds()
    {
        if (PlayerPrefs.HasKey("ControlOverrides"))
        {
            BindingWrapperClass bindingList = JsonUtility.FromJson(PlayerPrefs.GetString("ControlOverrides"), typeof(BindingWrapperClass)) as BindingWrapperClass;

            //create a dictionary to easier check for existing overrides
            Dictionary <System.Guid, string> overrides = new Dictionary <System.Guid, string>();
            foreach (var item in bindingList.bindingList)
            {
                overrides.Add(new System.Guid(item.id), item.path);
            }

            //walk through action maps check dictionary for overrides
            foreach (var map in playerInput)
            {
                var bindings = map.bindings;
                for (var i = 0; i < bindings.Count; ++i)
                {
                    if (overrides.TryGetValue(bindings[i].id, out string overridePath))
                    {
                        //if there is an override apply it
                        map.ApplyBindingOverride(i, new InputBinding {
                            overridePath = overridePath
                        });
                    }
                }
            }
        }
    }
Пример #4
0
    /// <summary>
    /// stores the active control overrides to player prefs
    /// </summary>
    public void StoreControlOverrides () {
        //saving
        BindingWrapperClass bindingList = new BindingWrapperClass ();
        foreach ( var map in control.actionMaps ) {
            foreach ( var binding in map.bindings ) {
                if ( !string.IsNullOrEmpty ( binding.overridePath ) ) {
                    bindingList.bindingList.Add ( new BindingSerializable ( binding.id.ToString (), binding.overridePath ) );
                }
            }
        }

        PlayerPrefs.SetString( "ControlOverrides", JsonUtility.ToJson ( bindingList ) );
        Debug.Log(PlayerPrefs.GetString ( "ControlOverrides" ));
        PlayerPrefs.Save ();
    }
    public void SavePlayerBindings()
    {
        BindingWrapperClass bindingList = new BindingWrapperClass();

        foreach (var map in InputActions.asset.actionMaps)
        {
            foreach (var binding in map.bindings)
            {
                if (!string.IsNullOrEmpty(binding.overridePath))
                {
                    bindingList.bindings.Add(new BindingSerializable(binding.id.ToString()
                                                                     , binding.overridePath));
                }
            }
        }

        PlayerPrefs.SetString("ControlOverrides", JsonUtility.ToJson(bindingList));
        PlayerPrefs.Save();
    }