要为不同的对象创建带有不同时间的Unity动画序列,可以使用Animation组件和Animator组件。 Animation组件提供了一个时间轴和一些动画状态,而Animator组件提供了一个状态机和过渡。
以下是一个示例,假设我们有两个对象cube1和cube2。 cube1需要从初始位置移动到(2,0,0),用时2秒,cube2需要从初始位置移动到(5,0,0),用时3秒。
步骤1:在场景中拖动两个对象是可用的。
步骤2:选择每个对象并向其添加Animation组件。通过单击“Add Component”按钮并搜索“Animation”即可添加该组件。
步骤3:转到Animation窗格并创建一个新的动画剪辑。选择“Add Property”按钮,然后选择物体的Transform,并将其移动到新的位置(例如,对于cube1,将其移动到(2,0,0))。更改动画剪辑的时间以匹配所需的时间。
步骤4:重复步骤3以为第二个对象创建动画。
步骤5:将Animator组件添加到任何一个对象中并创建一个状态机。将动画剪辑添加到状态机,并连接状态以便正确的过渡。
步骤6:在脚本中访问Animator组件并让对象进行动画。以下是示例代码:
public class CubeMovement : MonoBehaviour {
private Animator anim;
void Start () {
anim = GetComponent();
if (gameObject.name == "Cube1") {
anim.Play("Cube1Anim");
} else if (gameObject.name == "Cube2") {
anim.Play("Cube2Anim");
}
}
}
此脚本将每个对象的Animator组件分配给“anim”变量。