我导入了一个包含四个较小子立方体的立方体网格。 网格还包含一个动画,可以将较小的立方体推出大的立方体。完成后,其中一个小立方体再次“分裂”(它不是真的分裂 - 它只是将四个孩子推出去)。
当用户点击大立方体时,我想触发这些动画。动画最初导出为一个剪辑,但我将其剪切成两半,以便我可以触发第一个或第二个分割。
我将Box Collider附加到大型多维数据集以便能够获取OnMouseDown事件,然后我将一个int参数传递给我的AnimationController,以启动相应的动画:
public class ClickToAnimate : MonoBehaviour {
private Animator _animator;
private int _clicks = 1;
void Start()
{
_animator = GetComponent<Animator>();
}
void OnMouseDown()
{
_animator.SetInteger("Clicks", _clicks);
if (_clicks == 3)
{
_clicks = 1;
}
else
{
_clicks++;
}
}
}
状态切换工作正常但是当我从FirstSplit转换到SecondSplit时,第一个动画被还原,以便在播放第二个动画之前将四个中等立方体驱回大立方体。
我尝试启用“应用根运动”,但这没有帮助(可能是因为大立方体实际上从未移动过?)。那么如何在不重置每一步的情况下“链接”这些动画呢?关于AnimationController和动画分割的一般想法是否正确处理这个以及我缺少什么?