我导入了一个包含四个较小子立方体的立方体网格 . 网格还包含一个动画,可以将较小的立方体推出大的立方体 . 完成后,其中一个小立方体再次“分裂”(它不是真的分裂 - 它只是再推出四个孩子) .

Mesh in hierarchy

当用户点击大立方体时,我想触发这些动画 . 动画最初导出为一个剪辑,但我把它切成两半,以便我可以触发第一个或第二个分割 .

animation split in two parts

我将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++;
        }
    }
}

enter image description here

状态切换工作正常但是当我从FirstSplit转换到SecondSplit时,第一个动画被还原,以便在播放第二个动画之前将四个中等立方体驱回大立方体中 .

我尝试启用“应用根运动”,但这没有帮助(可能是因为大立方体实际上从未移动过?) . 那么如何在不重置每一步的情况下“链接”这些动画呢?关于AnimationController和动画分割的一般想法是否正确处理这个问题以及我缺少什么?