gpt4 book ai didi

animation - Unity 5.1 Animator Controller 不转换

转载 作者:行者123 更新时间:2023-12-03 08:05:47 24 4
gpt4 key购买 nike

我创建了一个 Animator Controller(称为 Player)并将其分配给我的人形头像的 Animator 字段,以及简单的具有适当过渡的动画状态。请参阅所附的两张图片。

我已将包含以下代码的脚本附加到我的化身游戏对象,但我想知道从 IdleWalk 的转换我遗漏了什么或做错了什么> 不会发生,即使我可以看到当我按下 Wspeed 变量增加。

有人可以帮我理解这个问题吗?

using UnityEngine;
using System.Collections;

public class CharAnim : MonoBehaviour
{
private Animator animator;
float speed;

void Start()
{
animator = GetComponent<Animator>();
}

void Update()
{
animator.SetFloat( "speed", Input.GetAxis("Vertical") );

if ( Input.GetKeyDown( KeyCode.W ) && ( speed > 0.5f ) )
{
animator.SetTrigger("Walk");
}
else
{
animator.SetTrigger("Idle");
}
}
}

x

enter image description here

enter image description here

最佳答案

您的代码中的问题是,animator.SetTrigger("Walk"); 在您按下按键和 animator.SetTrigger("Idle"); 时在单个帧中被调用 为其余帧调用。

尝试将 Input.GetKeyDown( KeyCode.W ) 更改为 Input.GetKey( KeyCode.W )。前者只返回 true 一次,即当您按下键时的那一刻,而后者返回 true 直到您释放键。像这样的东西:

void Update ()
{
if(Input.GetKey(KeyCode.W))
{
animator.SetTrigger("Walk");
}
else
animator.SetTrigger("Idle");
}

附带说明,您不需要 Animator 中的 speed 变量来触发步行动画,因为您已经使用 W.

Animator setup

空闲 -> 步行 enter image description here

步行 -> 空闲 enter image description here

关于animation - Unity 5.1 Animator Controller 不转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31564090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com