private Rigidbody2D R2D;
void Start()
{
R2D = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
float move = Input.GetAxis("Horizontal");
R2D = GetComponent<Rigidbody2D>();
if (Input.GetButtonDown("Roll"))
{
float rollSpeed = 20;
anim.SetBool("Roll", true);
R2D.velocity = new Vector2(move * rollSpeed, R2D.velocity.y);
}
所有我试图做的是在按下滚动按钮时增加玩家的速度,动画全部工作,这里唯一的问题是玩家的速度。
我希望在滚动动画期间提高玩家的速度,这是由上面的if语句中的Roll boolean控制的。
Unity&#39;或者&#39; Unity2D&#39;标签存在,我没有代表制作它们。
整个代码:http://www.pastebucket.com/553044
感谢您的帮助!
答案 0 :(得分:0)
你错误地使用Rigidbody2D
,永远不应该直接修改速度或变换(https://docs.unity3d.com/Manual/RigidbodiesOverview.html)。
相反,请执行以下操作:
Vector2 force = 'your force';
R2D.AddForce(force, ForceMode2D.Impulse);
https://docs.unity3d.com/ScriptReference/Rigidbody2D.AddForce.html