29 lines
935 B
C#
29 lines
935 B
C#
#if PRIME_TWEEN_INSTALLED
|
|
using PrimeTween;
|
|
using UnityEngine;
|
|
|
|
namespace PrimeTweenDemo {
|
|
public class Road : Animatable {
|
|
[SerializeField] MeshRenderer roadModel;
|
|
[SerializeField] AnimationCurve ease;
|
|
float currentSpeed;
|
|
|
|
void Awake() {
|
|
_ = roadModel.material; // copy shared material
|
|
}
|
|
|
|
public override Sequence Animate(bool isAnimating) {
|
|
var currentSpeedTween = Tween.Custom(this, currentSpeed, isAnimating ? 0.3f : 0, 1, (_this, val) => _this.currentSpeed = val);
|
|
var sequence = Sequence.Create(currentSpeedTween);
|
|
if (isAnimating) {
|
|
sequence.Group(Tween.LocalPositionY(transform, 0, -0.5f, 0.7f, ease));
|
|
}
|
|
return sequence;
|
|
}
|
|
|
|
void Update() {
|
|
roadModel.material.mainTextureOffset += new Vector2(-1f, 1f) * currentSpeed * Time.deltaTime;
|
|
}
|
|
}
|
|
}
|
|
#endif |