我想实现PR,AE那种相机动画的运镜效果,效果如下:
https://www.bilibili.com/video/BV1EP4y1D7oL/?spm_id_from=333.337.search-card.all.click&vd_source=d7b673c666c7c8419d2eb1d18a81da0a
所以写了这个代码
using UnityEngine;
using DG.Tweening;
using System;
public class CameraAnimation1 : MonoBehaviour
{
private Camera Camera;
[Serializable]
public class Max
{
public bool 启用坐标;
public Vector3 Position;
public Ease P_缓动 = Ease.InOutSine;
public float P_动画时间 = 0f;
public bool 启用旋转;
public Vector3 Rotation;
public Ease R_缓动 = Ease.InOutSine;
public float R_动画时间 = 0f;
public float 等待时间;
}
public Max[] Hub;
public void StartCameraAnimationl()
{
Camera = Camera.main;
Sequence sequence = DOTween.Sequence();
for (int i = 0; i < Hub.Length; i++)
{
sequence.AppendInterval(Hub[i].等待时间);
if (Hub[i].启用坐标 == true && Hub[i].启用旋转 == true)
{
sequence.Append(Camera.transform.DOLocalMove(Hub[i].Position, Hub[i].P_动画时间).SetEase(Hub[i].P_缓动));
_sequence.Insert(Camera.transform.DOLocalRotate(Hub[i].Rotation, Hub[i].R_动画时间).SetEase(Hub[i].R_缓动));_
}
if (Hub[i].启用坐标 == true && Hub[i].启用旋转 == false)
{
sequence.Append(Camera.transform.DOLocalMove(Hub[i].Position, Hub[i].P_动画时间).SetEase(Hub[i].P_缓动));
}
if (Hub[i].启用旋转 == true && Hub[i].启用坐标 == false)
{
sequence.Append(Camera.transform.DOLocalRotate(Hub[i].Rotation, Hub[i].R_动画时间).SetEase(Hub[i].R_缓动));
}
}
}
}
这个代码在Unity里是可以自行增加元素的,也就是灵活自由的执行多段动画,也是我的目的
经过多次尝试排除,问题应该出在这里