// -------------------------------------------------------------------------------------------------------------------- // // Copyright (c) VRMADA, All rights reserved. // // -------------------------------------------------------------------------------------------------------------------- using UltimateXR.Core.StateSave; namespace UltimateXR.Locomotion { public partial class UxrTeleportLocomotion { #region Protected Overrides UxrComponent /// protected override void SerializeState(bool isReading, int stateSerializationVersion, UxrStateSaveLevel level, UxrStateSaveOptions options) { base.SerializeState(isReading, stateSerializationVersion, level, options); // Teleportation logic is already handled through events, we don't serialize parameters in incremental changes if (level > UxrStateSaveLevel.ChangesSincePreviousSave) { SerializeStateValue(level, options, nameof(_previousFrameHadArc), ref _previousFrameHadArc); SerializeStateValue(level, options, nameof(_arcCancelled), ref _arcCancelled); SerializeStateValue(level, options, nameof(_arcCancelledByAngle), ref _arcCancelledByAngle); SerializeStateValue(level, options, nameof(_lastSyncIsArcEnabled), ref _lastSyncIsArcEnabled); SerializeStateValue(level, options, nameof(_lastSyncIsTargetEnabled), ref _lastSyncIsTargetEnabled); SerializeStateValue(level, options, nameof(_lastSyncIsValidTeleport), ref _lastSyncIsValidTeleport); SerializeStateValue(level, options, nameof(_lastSyncTargetArrowLocalRot), ref _lastSyncTargetArrowLocalRot); if (isReading) { EnableArc(_lastSyncIsArcEnabled, _lastSyncIsValidTeleport); } } } #endregion } }