2025-05-08 13:38:55 +08:00

35 lines
1.1 KiB
C#

#if PRIME_TWEEN_INSTALLED && UNITY_UGUI_INSTALLED
using PrimeTween;
using UnityEngine;
namespace PrimeTweenDemo {
public class SlidingDoor : Animatable {
[SerializeField] Demo demo;
[SerializeField] Transform animationAnchor;
[SerializeField] Vector3 openedPos, midPos, closedPos;
bool isClosed;
Sequence sequence;
public override void OnClick() {
if (!demo.animateAllSequence.isAlive) {
Animate(!isClosed);
}
}
public override Sequence Animate(bool _isClosed) {
if (isClosed == _isClosed) {
return Sequence.Create();
}
isClosed = _isClosed;
if (sequence.isAlive) {
sequence.Stop();
}
var tweenSettings = new TweenSettings(0.4f, Ease.OutBack, endDelay: 0.1f);
sequence = Tween.LocalPosition(animationAnchor, midPos, tweenSettings)
.Chain(Tween.LocalPosition(animationAnchor, _isClosed ? closedPos : openedPos, tweenSettings));
return sequence;
}
}
}
#endif