首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运行动画几秒钟后冻结,团结

运行动画几秒钟后冻结,团结
EN

Stack Overflow用户
提问于 2022-11-04 07:23:35
回答 1查看 42关注 0票数 1

我使用了一些来自mixamo的动画,并成功地将它们实现给了统一动画师,在那里我设置了所有不同的状态。当我从空闲状态转到运行状态时,就会出现问题。运行中的动画活动了几秒钟,但随后冻结,直到我停止角色,并返回到空闲状态。有人知道它可能来自什么吗?)

以下是与代码不同状态的Move函数和函数。

代码语言:javascript
运行
复制
private void Move()
    {


        float moveZ = Input.GetAxis("Vertical");
        float moveX = Input.GetAxis("Horizontal");

        moveDirection = new Vector3(moveX, 0, moveZ);
        moveDirection = transform.TransformDirection(moveDirection);
        

       

        if (moveDirection != Vector3.zero && !Input.GetKey(KeyCode.LeftShift))
        {
            Walk();
        }

        else if (moveDirection != Vector3.zero && Input.GetKey(KeyCode.LeftShift))
        {
            //  Debug.Log("Pressed shift");
            Run();
           
        }
        
        else if (Input.GetKeyDown("space"))
        {
            Jump();
        }
        
        else if (moveDirection == Vector3.zero)
        {
            Idle();
        }

        moveDirection *= moveSpeed;
        controller.Move(moveDirection * Time.deltaTime);
      
    }

  
    private void Idle()
    {
       anim.SetInteger("state", 0);
    }

    private void Walk()
    {
        moveSpeed = walkSpeed;
        anim.SetInteger("state", 1);
    }

    private void Jump()
    {
       
        anim.SetInteger("state", 2);
    }

    private void Run()
    {
        moveSpeed = runSpeed;
        anim.SetInteger("state", 3);
    }

}

-我已经在动画师编辑器中查看了退出时间.-我把所有的动画都设为“循环时间”。

EN

Stack Overflow用户

发布于 2022-11-04 07:38:35

最好使用anim.SetTrigger("ParameterName")而不是anim.SetInteger(),只需调用anim.ResetTrigger("ParameterName")来停止当前动画,然后启动一个新动画。

另外,它可能导致您的问题是,您使用相同的“状态”参数为您的所有动画。

如果你可以发布一个动画屏幕的截图,包括你所创建的所有参数,那将是很有帮助的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74313477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档