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

29 lines
922 B
C#

#if PRIME_TWEEN_INSTALLED && UNITY_UGUI_INSTALLED
using PrimeTween;
using UnityEngine;
namespace PrimeTweenDemo {
public class Door : Animatable {
[SerializeField] CameraController cameraController;
[SerializeField] Transform animationAnchor;
bool isClosed;
public override void OnClick() {
Animate(!isClosed);
}
public override Sequence Animate(bool _isClosed) {
if (isClosed == _isClosed) {
return Sequence.Create();
}
isClosed = _isClosed;
var rotationTween = Tween.LocalRotation(animationAnchor, _isClosed ? new Vector3(0, -90) : Vector3.zero, 0.7f, Ease.InOutElastic);
var sequence = Sequence.Create(rotationTween);
if (_isClosed) {
sequence.Group(cameraController.Shake(0.5f));
}
return sequence;
}
}
}
#endif