最近项目有需求让游戏物体做抛物线运动使用了以下方法,
Sequence s = DOTween.Sequence();
//定义一共2秒的 x 轴移动
s.Append(eff.transform.DOMoveX(position.x, 2).SetEase(Ease.Linear));
//定义0-1秒的 y 轴移动
s.Insert(0, eff.transform.DOMoveY(y, 1F).SetEase(Ease.OutCirc));
//下落 1-2秒的 y 轴移动
s.Insert(1F, eff.transform.DOMoveY(position.y, 1F).SetEase(Ease.InCirc));
//case3做了旋转
switch (typeCode)
{
case 3:
float angle = Vector3.Angle(selfPos, diffPos) * -1;
s.Insert(0, eff.transform.DORotate(new Vector3(0, 0, angle), 2f));
break;
}
//播放
s.Play();
//该动画组的回调方法
s.OnComplete(() =>
{
eff.SetActive(false);
});