在滚动动画期间为2D播放器添加速度提升

时间:2016-08-17 23:01:01

标签: c# unity3d scripting

    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

感谢您的帮助!

1 个答案:

答案 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