C# 完成后一个接一个地播放两个单独的动画
我尝试在unity中一个接一个地播放两个动画(每个动画是主摄影机的两个独立路径),根据我的研究,我认为我需要使用以下内容:C# 完成后一个接一个地播放两个单独的动画,c#,unity3d,C#,Unity3d,我尝试在unity中一个接一个地播放两个动画(每个动画是主摄影机的两个独立路径),根据我的研究,我认为我需要使用以下内容: // Update is called once per frame void Update () { animation.PlayQueued("CameraMovement", QueueMode.PlayNow); animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOth
// Update is called once per frame
void Update () {
animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
}
然而,在我的相机上附加了这个代码后,我的游戏仍然只播放第一条路径。我创建了路径,因此不同路径之间应该有半秒的延迟。我的相机的动画组件中有这两个动画(见附图),我很困惑为什么这不起作用
我错过什么了吗
如用户2025312所述,您正在每帧调用代码。也就是说,你告诉它立即播放第一个动画的每一帧,然后你将第二个动画排队。那不行 根据你想做什么,你有几个选择。假设您希望在循环中连续播放这两个动画。你能做的是:
void Update () {
if (!animation.isPlaying)
{
animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
}
}
这应该很容易理解,它会检查是否正在播放动画,如果没有,它会将两个动画排队,立即播放第一个动画。这将在Update()
中正常工作
但是,如果您希望只播放一次动画序列(或在触发时),请将这两行放在Start()
或您选择的方法中
void Start () {
animation.PlayQueued("CameraMovement", QueueMode.PlayNow);
animation.PlayQueued("SpaceSceneMovement", QueueMode.CompleteOthers);
}
那应该行得通。如果没有,请验证动画是否单独工作 我没有时间给您写一个正确的解决方案,但Update会在每一帧中运行,因此您将启动第一帧,对第二帧进行排队,然后在下一帧中以更高的优先级播放第一帧(playnow)。这将无限期地重复,每一帧意味着只有第一个动画才会播放。如果这是一次性的,也许将代码移动到Start()尝试过,但仍然不起作用。谢谢。这很有效。结果我还勾选了“自动播放”。我把它关掉了,现在可以正常工作了。