2301_78795540 2024-05-09 20:35 采纳率: 0%
浏览 24

unity 的动画控制器如何实现默认动画是跑,然后添加两个连续动作为跳跃的动画,在不跳的情况下,一直保持跑的状态

unity 的动画控制器如何实现默认动画是跑,然后添加两个连续动作为跳跃的动画,在不跳的情况下,一直保持跑的状态

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 优质创作者: Java、后端开发技术领域 2024-05-09 20:35
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    要实现上述需求,需要进行以下步骤:
    1. 创建一个动画控制器,并为其添加跑、跳跃等动画。
    2. 在动画控制器中创建一个默认状态,并将默认状态设置为跑动画。
    3. 创建两个连续的跳跃状态,并将它们添加到动画控制器中。在跳跃状态后,将状态机转换回跑状态。
    4. 为跑状态和跳状态添加过渡条件,使得在跳完之后自动转换回跑状态,同时禁止在跑状态下进行跳跃。
    5. 在角色游戏对象上添加动画控制器组件,将刚才创建的动画控制器赋值给它。
    6. 在脚本中使用Animator组件控制状态转换。 参考代码如下:
    public class PlayerController : MonoBehaviour {
        private Animator anim;
        void Start() {
            anim = GetComponent<Animator>();
        }
        void Update() {
            if (Input.GetKeyDown(KeyCode.Space)) {
                anim.SetTrigger("Jump");
            }
        }
        void FixedUpdate() {
            float horizontalInput = Input.GetAxis("Horizontal");
            anim.SetFloat("Speed", horizontalInput);
        }
    }
    

    在上面的脚本中,我们实现了角色的左右移动以及跳跃。在Update函数中,我们检查玩家是否按下了空格键,如果按下了,便调用Animator组件的SetTrigger方法,将动画状态机的Trigger状态设置为Jump。在FixedUpdate函数中,我们根据玩家的左右移动速度调整Speed参数,以控制跑步动画的播放。 在上述动画控制器中,我们为跳状态添加了一个Exit Time为0.9的过渡条件,意味着跳状态播放到90%的时候就会自动转换回跑状态。同时,我们也为跑状态添加了一个条件,如果Trigger状态为Jump,那么便切换到跳状态。 这样一来,当玩家按下空格键跳跃时,角色会先播放跳跃动画,并在跳完之后自动转换回跑状态。在不跳的情况下,角色则一直播放跑动画。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日