统一点之间的UI缩放溜溜球效果



我在使用DOTween创建yoyo缩放效果时遇到问题。我尝试过使用DoScale、DOScaleShake和DOPunchScale。似乎都不起作用。我制作的旋转效果很好,但我也需要它来缩放,这是我无法创造的。

这是当前的代码

void Update()
{
DOTween.Sequence()
.Append(crownGlow.transform.DOLocalRotate(new Vector3(0, 0, 360), rotationSpeed, RotateMode.FastBeyond360).SetRelative())
.Append(crownGlow.transform.DOPunchScale(new Vector3(0.5f, 0.5f, 0.5f), scaleSpeed, 10, 1f));
}

我甚至试过这种方法,但不起作用

DOTween.Sequence()
.Append(crownGlow.transform.DOScale(new Vector3(originalScale.x + 0.5f, originalScale.y + 0.5f, originalScale.z + 0.5f), scaleSpeed).SetEase(Ease.Linear))
.Append(crownGlow.transform.DOScale(originalScale, scaleSpeed).SetEase(Ease.Linear));

编辑:在Ryanas的帮助下,我设法找到了的解决方案

void Start()
{
originalScale = crownGlow.transform.localScale;
crownGlow.transform.DOLocalRotate(new Vector3(0, 0, 360), rotationSpeed, RotateMode.FastBeyond360).SetEase(Ease.Linear).SetLoops(-1, LoopType.Incremental).SetRelative();
var sequence = DOTween.Sequence()
.Append(crownGlow.transform.DOScale(new Vector3(originalScale.x + 0.5f, originalScale.y + 0.5f, originalScale.z + 0.5f), scaleSpeed))
.Append(crownGlow.transform.DOScale(originalScale, scaleSpeed));

sequence.SetLoops(-1, LoopType.Restart);
}

您可能想要的是这样的东西。不应该在更新每一帧时创建序列,因为这意味着你每秒都要在这个对象上应用几个序列。

相反,您希望在另一个功能(如"唤醒"或"启动"(中创建序列。你提到你想要它给Yoyo,但当你设置循环数时,你需要提供它。我建议查看文档以了解更多信息:http://dotween.demigiant.com/documentation.php

这里,我将循环量设置为-1,这意味着它无限循环。您需要添加.Join而不是.Append,以便两个tween同时出现。

void Start()
{
var sequence = DOTween.Sequence()
.Append(crownGlow.DOLocalRotate(new Vector3(0, 0, 360), rotationSpeed, RotateMode.FastBeyond360).SetRelative())
.Join(crownGlow.DOPunchScale(new Vector3(0.5f, 0.5f, 0.5f), scaleSpeed, 10, 1f));
sequence.SetLoops(-1, LoopType.Yoyo);
}

最新更新