2017-05-20 36 views
0

我正在Unity 2D中進行項目學習,以便學習。這是一場乒乓球比賽。我有它的材料,所以它每次反彈時都會更快地移動。它的材料唯一的問題是它的速度失控併發生故障。我想找出一種方法來阻止它。如何在物體以最快速度行進時保持速度不變

例如,我想知道如何在達到最高速度時保持恆速,例如15f。這是一個Rigidbody2d對撞球。

回答

2

在本post建議,你可以使用Vector2.ClampMagnitude方法,而在你的OnFixedUpdate()跟蹤它控制 您的剛體的速度。 我在提供的文章中提供的代碼是爲了您的方便。我編輯我從引後提供給符合最近在API中的更改代碼:

float maxVelocity = 10; 
void FixedUpdate() 
{ 
rigidbody2D.velocity = Vector2.ClampMagnitude(rigidbody2D.velocity, 
    maxVelocity); 
} 
+0

我很抱歉,但是這個代碼是過時的,甚至當我更新了它,它給了我三個統一的錯誤,如: 錯誤CS1502:用於UnityEngine.Vector2.ClampMagnitude最好重載的方法匹配(UnityEngine.Vector2,浮動)具有一些無效參數 錯誤CS1503:參數#1不能轉換float表達式爲類型「UnityEngine.Vector2」 錯誤CS0131:賦值的左側必須是變量,屬性或索引器。 –

+0

更改了上面的代碼以匹配API中的最近更改。嘗試一下,讓我知道。 – Majed

+0

我用新代碼替換舊代碼,並得到2個這樣的代碼:error CS1061:Type'UnityEngine.Component'不包含'velocity'的定義,也沒有'UnityEngine.Component'類型的擴展方法'velocity'找到。你錯過了一個程序集引用嗎?你有什麼想法嗎?對不起,打擾你了。 –

相關問題