// -------------------------------------------------------------------------------------------------------------------- // // Copyright (c) VRMADA, All rights reserved. // // -------------------------------------------------------------------------------------------------------------------- using UltimateXR.Core.StateSave; namespace UltimateXR.Locomotion { public abstract partial class UxrTeleportLocomotionBase { #region Protected Overrides UxrComponent /// protected override void SerializeState(bool isReading, int stateSerializationVersion, UxrStateSaveLevel level, UxrStateSaveOptions options) { base.SerializeState(isReading, stateSerializationVersion, level, options); // Locomotion is are already handled through events, we don't serialize parameters in incremental changes if (level > UxrStateSaveLevel.ChangesSincePreviousSave) { int layerMaskValue = _layerMaskRaycast.value; SerializeStateValue(level, options, nameof(layerMaskValue), ref layerMaskValue); SerializeStateValue(level, options, nameof(_teleportTargetEnabled), ref _teleportTargetEnabled); SerializeStateValue(level, options, nameof(_teleportTargetValid), ref _teleportTargetValid); if (isReading) { _layerMaskRaycast.value = layerMaskValue; EnableTeleportObjects(_teleportTargetEnabled, _teleportTargetValid); } } } #endregion } }