【发布时间】:2019-07-09 15:41:12
【问题描述】:
在学习游戏开发的过程中,我决定自己做一款游戏。然而,当我通过“Animator”选项卡将我的动画放在我的模型上时,我偶然发现了一个问题。 我在动画器中创建了一个“float”类型的参数,如果速度大于或小于值 x,它会播放某个动画。但是,为了实例化步行/跑步速度,我使用了位于 Inspector 选项卡中的字段。 问题是,由于初始化的速度总是不同于 0,动画师使用插入的值并播放行走动画,尽管没有按下任何键!
我已经尝试了各种我在网上找到的东西,例如,使用动画上的“参数”复选框或使用不同的代码行,例如“animator.SetFloat("Speed", (speed));"在我的脚本上,但这些都没有奏效。
// Update is called once per frame
void Update()
{
//animator.SetFloat("Speed", Mathf.Abs(speed));
animator.SetFloat("Speed", (speed));
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Vector3 moveDirection = new Vector3(horizontal, 0f, vertical) * speed * Time.deltaTime;
transform.Translate(moveDirection);
我希望输出如下: 没有按键时,播放空闲动画。 当WASD键被按下时,行走动画播放。 当按下 Shift + WASD 键时,运行动画播放。
【问题讨论】: