2016-08-17 69 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 boolean控制的。

「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 –