统一的 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));
}
}
为不同的动作使用动画会节省你很多时间。如果您想要布娃娃效果,请在玩家死亡后启用它。因此,在动画中,如果您想要不同速度或位置等的不同动画,您应该检查混合树。所有游戏角色作为一个对象移动,其余的在动画中完成。更简单高效。
我试着和我哥哥一起做布娃娃游戏但是 问题是我们试着做一个布娃娃动作,我们可以做一个动作,但是 当我们在 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));
}
}
为不同的动作使用动画会节省你很多时间。如果您想要布娃娃效果,请在玩家死亡后启用它。因此,在动画中,如果您想要不同速度或位置等的不同动画,您应该检查混合树。所有游戏角色作为一个对象移动,其余的在动画中完成。更简单高效。