diff --git a/Assets/Scenes/GameScene3D.unity b/Assets/Scenes/GameScene3D.unity index 219a503..c6cc293 100644 --- a/Assets/Scenes/GameScene3D.unity +++ b/Assets/Scenes/GameScene3D.unity @@ -24627,7 +24627,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1637412870 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Menu/Panels/GamemodePanel.cs b/Assets/Scripts/Menu/Panels/GamemodePanel.cs index c06b7f1..7f9612c 100644 --- a/Assets/Scripts/Menu/Panels/GamemodePanel.cs +++ b/Assets/Scripts/Menu/Panels/GamemodePanel.cs @@ -1,7 +1,5 @@ -using Cysharp.Threading.Tasks; -using DG.Tweening; +using DG.Tweening; using System.Collections.Generic; -using System.Threading; using UnityEngine; using UnityEngine.UI; @@ -31,7 +29,7 @@ public class GamemodePanel : MenuPanel [SerializeField] private GameMode gameMode; private Vector2 signStart; - private CancellationTokenSource cts; + private Sequence _animation; private float totalTime => frameDuration + characterDelay + characterDuration; @@ -43,71 +41,61 @@ public class GamemodePanel : MenuPanel public override void Enable(int _, float delay) { StopAnimation(); - cts = new(); + + _animation = DOTween.Sequence(); foreach (var frame in frames) { - frame - .DOSizeDelta(enabledFrameWH, frameDuration) - .SetEase(Ease.OutQuad) - .WithCancellation(cts.Token); + Tween tween = frame.DOSizeDelta(enabledFrameWH, frameDuration).SetEase(Ease.OutQuad); + _animation.Join(tween); } - characterRect - .DOSizeDelta(enabledCharacterWH,characterDuration) - .SetDelay(characterDelay) - .SetEase(Ease.OutQuad) - .WithCancellation(cts.Token); + _animation.Insert(characterDelay, + characterRect.DOSizeDelta(enabledCharacterWH, characterDuration).SetEase(Ease.OutQuad)); - characterImage.DOColor(enabledCharacterColor, characterDuration) - .SetDelay(characterDelay) - .SetEase(Ease.OutQuad) - .WithCancellation(cts.Token); + _animation.Insert(characterDelay, + characterImage.DOColor(enabledCharacterColor, characterDuration).SetEase(Ease.OutQuad)); - Sequence sequence = DOTween.Sequence(); - - sequence.Append( + _animation.Append( modeSign.DOAnchorPos(signStart - signOffset, totalTime * 0.15f) .SetEase(Ease.Linear) ); - sequence.Append( + _animation.Append( modeSign.DOAnchorPos(signStart, totalTime * 0.85f) .SetEase(Ease.OutBounce) ); - sequence.WithCancellation(cts.Token); - sequence.Play(); - - + _animation.PlayForward(); } public override void Disable(int _) { StopAnimation(); - cts = new(); + + _animation = DOTween.Sequence(); foreach (var frame in frames) { - frame.DOSizeDelta(disabledFrameWH, frameDuration).SetEase(Ease.InCirc).WithCancellation(cts.Token); + _animation.Join(frame.DOSizeDelta(disabledFrameWH, frameDuration).SetEase(Ease.InCirc)); } - characterRect - .DOSizeDelta(disabledCharacterWH, characterDuration) - //.SetDelay(characterDelay) - .SetEase(Ease.OutQuad) - .WithCancellation(cts.Token); + _animation.Join( + characterRect.DOSizeDelta(disabledCharacterWH, characterDuration).SetEase(Ease.OutQuad)); - characterImage.DOColor(disabledCharacterColor, characterDuration) - .SetDelay(characterDelay) - .SetEase(Ease.OutQuad) - .WithCancellation(cts.Token); + _animation.Insert(characterDelay, + characterImage.DOColor(disabledCharacterColor, characterDuration).SetEase(Ease.OutQuad)); + + _animation.PlayForward(); } public override void Interact() => GameManager.Instance.TryEnterGame(gameMode); private void StopAnimation() { - cts?.Cancel(); - cts?.Dispose(); + if (_animation != null) + { + _animation.Kill(); + _animation = null; + } } } \ No newline at end of file