2016-08-17 4 views
1
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); 

     } 

私がしようとしているのは、ロールボタンを押したときにプレイヤーのスピードを追加することです。アニメーションはすべて動作します。 。ロールアニメーション中に2Dプレーヤーにスピードブーストを追加する

上記のif文内のRollブール値によって制御されるロールアニメーション中に、プレイヤーのスピードを素早く上げたいと思っています。

「Unity」または「Unity2D」タグは存在せず、私はそれらを作成する担当者がいません。

全体コード:助けをhttp://www.pastebucket.com/553044

ありがとう!

答えて

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

+0

をこれは公式の団結のチュートリアルが私に言ったことではないでしょうか?私はこの同じ方法でキャラクターを動かし、それはうまくいきました。私はあなたの答えを主張するのではなく、もっと精巧なものを求めています。私の全コードはここにあります:http://www.pastebucket.com/553044 –

関連する問題