2016-06-18 23 views
0

我試圖逼真地降低球的速度,並且如果需要也可能改變它的方向。我不知道如何計算碰撞角度對速度的影響以及球應該改變方向的角度。我只是想知道這個碰撞檢測背後的想法,但是如果有人已經準備好實現Unity C#的代碼,甚至更好。我製作了這張令人敬畏的圖像來展示我的問題。 Different collisions affect speed and direction differently球對球碰撞後對象的速度和方向

+2

只需使用內部物理引擎。 – AgentFire

+0

你的意思是兩個移動的球?或球+通用物體 –

+0

我認爲你並沒有使用物理和彈性 – matiaslauriti

回答

0

看來你不知道Unity包含一個內置的物理引擎。 要使用它,只需將Rigidbody組件和碰撞組件(BoxCollider,SphereCollider ...)添加到您的對象。

在代碼中,您可以通過使用剛體爲對象提供速度,加速度等。例如:

gameobject.rigidbody.velocity = new Vector3(1f, 0f, 0f); 

的文檔包含了所有你可以在剛體調用的函數:

https://docs.unity3d.com/ScriptReference/Rigidbody.html

如果兩個具有剛體和對撞機相互接觸物體時,collidion是自動計算。請注意,對象的新方向是使用對撞機對象的形狀計算的,因此您需要使用盡可能與對象相似的對撞機。

祝你好運