我已经离开并使用了我自己的方法,但我没有得到理想的结果 - 我需要知道如何通过Unity中的C#从单步漫步动画正确转换为连续运行周期动画。我看过Unity论坛,但没有骰子。
好吧,所以我在Maya中创建了一个空闲和连续的漫步动画并导入Unity - 然后我将步行周期分为两个单独的步骤(1个左侧和1个右侧)。
因为我的角色每次移动一步,具体取决于用户的敲击(他只是在用户不断点击时开始“跑步”或连续行走),我只是使用触发器在左右动画中交替所有其他步骤我的动画控制器。
这是我当前的设置(转换是L和R触发器):
然后是代码:
public swipes swipe() {
if (Input.touches.Length > 0) {
Touch t = Input.GetTouch (0);
if (t.phase == TouchPhase.Began && CrossPlatformInputManager.GetButton ("Swipe")) {
if (stepCount % 2 != 0) {
animator.SetTrigger ("oneStep");
stepCount++;
} else {
animator.SetTrigger ("twoStep");
stepCount++;
}
return swipes.tap;
}
}}
这看起来很好,但只有当用户定期点击时,意味着不会连续多次点击。当他们快速敲击时,所有步骤都混合在一起,动画太慢而无法完成,所以看起来不自然而且不喜欢跑步。
我需要做的是,如果水龙头开始快速连续转换到我的完整预制运行周期而不是单个步骤。我有一些明显的想法,但我不能成为唯一一个遇到这种想法 - 正确的方法是什么呢?
如何才能正确地从单步走到动画?