2012-08-28 72 views
1

有沒有辦法給對象增加力而不聲明方向。 我想扔球,但我只需要在釋放後一次增加力量。 我用這個代碼rigidbody.velocity = transform.forward * 20;,但球在球沿着屏幕上用戶想要的方向改變了方向並向前移動。無方向增加力

回答

0

如果我的理解,你想在那裏的球會,即方向上施加的力(或可能的衝動?),其速度的方向:

Vector3 forceDirection = transform.velocity * 20; 
currentGameObject.rigidbody.AddForce(forceDirection, ForceMode.Impulse); // or ForceMode.Force 

我我不是很瞭解,我的意思是,這個部隊必須有一個方向,對吧?我假設你想讓它走到它已經去的地方。

1

嘗試Rigidbody.AddForce並玩不同的ForceModes。如果我理解你的話,Impulse或VelocityChange會適合你的需求。

Vector3 forceDirection = transform.forward * 20; 
currentGameObject.rigidbody.AddForce(forceDirection, ForceMode.Force); 
+0

看來你的代碼行爲將可能與我發佈的相同。問題是當我試圖拋出或滾動一個球時,它總是遵循相同的path.ex.如果第一個球投擲在中間並且在中心落地並且落在中心,則所有的球將以這種方式起作用。因爲使用相同的腳本。如果我將球拖到左邊然後嘗試滾動球然後球會滾動它,我想要什麼應該從其立場直線前進。或者最好的一點是它遵循手指的運動方向,最好的例子就是一個輕彈腳踏起動器。 – 11111