public static void SetToDefault <TEnum>( InputActionContainer <TEnum> actions, InputActionContainer <TEnum> defaultActions, int categoryMask, IInputDevice device ) where TEnum : System.Enum { foreach (TEnum actionEnum in EnumX <TEnum> .Values) { InputAction action = actions.GetActionConfig(actionEnum); if (((1 << actions.GetActionConfig(actionEnum).properties.category) & categoryMask) == 0) { continue; } InputAction defaultAction = defaultActions.GetActionConfig(actionEnum); action.RemoveMapsForDevice(device); var defaultMaps = defaultAction.GetMapsForDevice(device); foreach (var map in defaultMaps) { action.Add(map.Clone()); } } }
public void LoadFromSaveData(InputActionContainer <TEnum> that) { saveData = that.saveData; foreach (var data in saveData) { TEnum enumVal; if (EnumX <TEnum> .GenericTryParse(data.action, out enumVal)) { actionConfigCleanLookup[enumVal].LoadFrom(data); // Add more maps as needed } else { Debug.LogError("Unable to parse " + data.action + " as an input action"); } } }