2016-10-22 59 views
0

我提出了一個非常簡單的程序,它在屏幕的邊緣創建edgecolliders,然後啓動具有連接到它與衝擊力一circleCollider2d橢圓。統一rigidbody2d速度收斂於0隨時間的1軸隨機

我設置所有的碰撞體(邊緣和圓形)以使用彈性材料,其彈性設置爲1.0(無限彈跳)。

我有一個奇怪的問題,即隨着時間的推移,速度軸的一個收斂於0。例如

this.GetComponent<Rigidbody2D>().AddForce (new Vector2 (100, 100), ForceMode2D.Impulse); 

什麼情況是,對象將開始以對角線方式移動,但足以給反彈,速度在(100,0)和(-100,0)之間交替變化。這可能發生在x軸變爲0或Y軸變爲0的位置。這取決於啓動過程中哪一個更高。

我不知道爲什麼會發生這種情況。基本上在視覺上,物體會開始反彈,並且在大約10次反彈之後,它將以直線來回跳動,而不是保留另一個軸。我不知道它爲什麼這樣做。我沒有任何限制(我也嘗試約束Z軸旋轉,但是什麼也沒做)。

所有邊緣碰撞體以及圓形碰撞體的彈性都設置爲1.0。 剛體的質量爲1,所有阻力系數也設爲0。 意圖是它只是無休止地反彈。

回答

0

我會在這裏回答我自己的問題,因爲我剛剛意識到爲什麼會發生這種情況,一旦我觀察到旋轉的行爲。我完全沒有想到摩擦會牽扯到這個問題,特別是因爲摩擦在這種情況下每次都會產生相同的模擬。

隨着轉彎的反彈到1,您還必須將摩擦轉爲0.