📜  unity 用动画移动角色 - C# (1)

📅  最后修改于: 2023-12-03 15:35:31.136000             🧑  作者: Mango

Unity动画控制角色移动 - C#

在Unity中,我们可以通过动画控制器制作角色的移动和行走动画。本文将介绍如何使用C#代码操控动画控制器,实现角色的移动效果。

步骤
1. 创建动画控制器

在Unity编辑器中,创建一个动画控制器并给它命名。在该动画控制器中,创建角色的行走动画,并分配动画状态到不同的动画片段中。

2. 将动画控制器分配到角色上

选中角色模型,在inspector面板中找到Animator组件。将步骤1中创建的动画控制器拖放到该组件中的Controller字段。

3. 创建角色移动脚本

创建一个新的C#脚本文件,并给其起一个合适的名字,比如"PlayerMovement"。在该脚本中,定义一个公有的浮点型变量"speed",表示角色的移动速度。

public class PlayerMovement : MonoBehaviour
{
    public float speed;
}
4. 实现角色移动逻辑

在该脚本的Update()函数中,通过Input.GetAxis()获取水平和垂直方向的输入值,并根据输入值更新角色的位置。最后,通过Animator组件的SetFloat()方法控制动画控制器的运行。

public class PlayerMovement : MonoBehaviour
{
    public float speed;
    Animator anim;

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

    void Update()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");

        Vector3 move = new Vector3(h, 0, v).normalized;

        transform.position += move * speed * Time.deltaTime;

        if (move != Vector3.zero)
        {
            anim.SetFloat("Speed", 1.0f);
        }
        else
        {
            anim.SetFloat("Speed", 0.0f);
        }
    }
}
5. 将脚本分配到角色上

将步骤4中创建的脚本挂载到角色上。

总结

本文介绍了如何使用动画控制器和C#代码实现角色的移动效果。通过学习本文,您可以更好地了解动画控制器和Animator组件的用法,提高Unity的开发效率。