【Unity2D:Animator】角色移动时播放对应的动画

一、制作动画混合树

1. 打开Window->Animation->Animator,打开动画编辑窗口

2. 点击想要编辑动画的游戏对象

3.  在动画编辑窗口中新建一个混合树

二、通过动画控制器编辑动画在合适的时机播放 

1. 点击加号,新建两个Parameters(参数)LookX,LookY(图中是MoveX和MoveY)

2. 右键混合树,添加4个Motion(动作)

3. 修改BlendType(混合类型)的属性为2D Simple Directional(2D简单方向)

4. 将4个Motion添加刚刚制作的4个AnimationClip资源

5. 将两个参数调整为LookX和LookY(图中是MoveX和MoveY)

6. 调整两个参数的值

7. 按照相同的方法再制作一个Idle混合树

 8. 返回上一级,设置Idle混合树为层级默认状态

9. 选中Idle混合树,点击Make Transition,再点击Move行为树,使Idle状态可以切换到Move状态

10. 再使Move状态到Idle状态也建立连接

11. 新建一个浮点型的Speed参数,点击Idle到Move的箭头,新建一个Conditions(条件)

12. 将条件设置为Speed大于0.1

13. 同理,将Move变为Idle的条件设置为Speed小于0.1

三、编辑Ruby脚本

注:在以下代码中,只显示本章节新编辑的代码,其他代码均省略

1.  定义二维向量lookDirection,表示Ruby的朝向

public class Ruby : MonoBehaviour{
    // Ruby的朝向
    private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方
}

2. 在Update方法中定义二维向量move表示要移动的方向和大小

public class Ruby : MonoBehaviour{
    // Ruby的朝向
    private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方

    void Update(){
        // horizontal和vertical分别是水平和竖直方向位移的大小
        Vector2 move = new Vector2(horizontal, vertical);
    }
}

3. 当Ruby移动时,重新设置Ruby的朝向并进行归一化处理;给Animator组件中的参数赋值

public class Ruby : MonoBehaviour{
    // Ruby的朝向
    private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方

    void Update(){
        // horizontal和vertical分别是水平和竖直方向位移的大小
        Vector2 move = new Vector2(horizontal, vertical);

        // 当Ruby移动时
        if(!Mathf.Approximately(move.x, 0) || !Mathf.Approximately(move.y, 0)) {
            lookDirection.Set(move.x, move.y);
            lookDirection.Normalize(); // 对向量lookDirection进行归一化处理,使每个方向的值变为(-1,1)范围内的小数
        }
        // 给Animator组件中的参数赋值
        animator.SetFloat("LookX", lookDirection.x);
        animator.SetFloat("LookY", lookDirection.y);
        animator.SetFloat("Speed", move.magnitude);
    }
}

        本章完。 

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以通过以下步骤在Unity2D中为角色移动播放脚步声: 1.准备脚步声音频资源。可以在互联网上搜索免费的脚步声音频文件,或者自己录制。 2.将脚步声音频资源导入Unity项目中。将音频文件拖动到Unity的Project视图中。 3.为角色添加AudioSource组件。在场景中选中角色,然后在Inspector视图中点击“Add Component”按钮,选择“Audio->Audio Source”。 4.设置AudioSource组件的属性。将导入的脚步声音频文件拖动到Audio Source组件的“Audio Clip”属性中。将“Play on Awake”属性设置为false,以便在角色移动手动调用播放。 5.编写角色移动脚本。在角色移动的脚本中,使用AudioSource组件的Play()方法播放脚步声音频。 下面是一个简单的示例代码: ``` using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed = 5f; private AudioSource audioSource; public AudioClip footstepSound; private void Start() { audioSource = GetComponent<AudioSource>(); audioSource.clip = footstepSound; } private void Update() { float x = Input.GetAxis("Horizontal"); float y = Input.GetAxis("Vertical"); transform.position += new Vector3(x, y, 0) * speed * Time.deltaTime; if (x != 0 || y != 0) { if (!audioSource.isPlaying) { audioSource.Play(); } } else { audioSource.Stop(); } } } ``` 在这个示例中,我们首先获取了角色的AudioSource组件,并将导入的脚步声音频文件赋值给它。然后,在Update()方法中检测角色是否在移动,如果是,则播放脚步声音频。如果角色停止移动,则停止播放脚步声音频。 希望这个示例能够帮助你为Unity2D角色移动添加脚步声音效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值