#if UNITY_EDITOR using UnityEngine; namespace UnityEngine.InputSystem { /// /// Legacy compatibility type. Package versions up to and including 1.18 stored the domain-reload /// survival state in a hidden, ScriptableObject of this /// exact type and name (this type was renamed to in 1.20). /// /// /// When a project upgrades from such a version, that instance survives the domain reload triggered /// by the upgrade - but only if its serialized script reference still resolves. That reference is /// { fileID: 11500000, guid: <this file's guid> }, so this file MUST keep the original /// InputSystemObject.cs GUID (5cdce2bffd1e49bda08b3db54a031207) and this MUST be the /// primary class of the file (matching the file name). If the reference fails to resolve, Unity /// drops the object during the reload and the input state - including the list of connected devices /// - is lost on upgrade, with no in-process recovery (native only re-reports devices once per editor /// process). See ISX-2569. /// /// The fields below must keep the same names and serialized layout as 1.18's InputSystemObject so the /// surviving data deserializes into them. InputSystemEditorInitializer.InitializeInEditor /// detects a surviving instance of this type, migrates its state into a /// , and then destroys it. /// internal class InputSystemObject : ScriptableObject { [SerializeField] public InputSystemState systemState; [SerializeField] public bool newInputBackendsCheckedAsEnabled; [SerializeField] public string settings; [SerializeField] public double exitEditModeTime; [SerializeField] public double enterPlayModeTime; } } #endif // UNITY_EDITOR