统一的 2D 布娃娃运动

2D Ragdoll movement in unity

我试着和我哥哥一起做布娃娃游戏但是 问题是我们试着做一个布娃娃动作,我们可以做一个动作,但是 当我们在 Ragdoll 上尝试这个动作时,它非常正常。我们知道我们需要骨骼之类的东西,但我们不知道如何制作这样的脚本。我们不想在 YouTube 上看到教程,我们想制作一个我们想要的脚本。 任何人都知道我们该怎么做? 哦,我知道当我写这篇文章时,上面的代码中存在一些拼写错误,对此深表歉意。 这是我们的脚本:

    using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement : MonoBehaviour
{
    // Start is called before the first frame update
    public float force;
    public Rigidbody2D body;

    public Leg[] legs;

    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKey(KeyCode.D))
        {

            Vector2 vec = Vector2.right * force;
            body.AddForce(vec);

            foreach (Leg leg in legs)
            {
                leg.Walk();
            }

        }


    }
}

[System.Serializable]
public class Leg
{
    public Rigidbody2D bone;
    public float walkRotation;
    public float force;

    public void Walk()
    {
        bone.MoveRotation(Mathf.LerpAngle(bone.rotation, walkRotation, force * Time.deltaTime));
    }
}

为不同的动作使用动画会节省你很多时间。如果您想要布娃娃效果,请在玩家死亡后启用它。因此,在动画中,如果您想要不同速度或位置等的不同动画,您应该检查混合树。所有游戏角色作为一个对象移动,其余的在动画中完成。更简单高效。