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());
                    }
                }
            }
示例#2
0
 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");
         }
     }
 }