2016-09-15 8 views
1

私は3Dプールゲームを作っています。基本的に私はメインカメラを持っています。ボタンを押すとカメラの位置に基づいてキューボールに力が加えられます。これは大丈夫です。Unity C#壁にバウンス

しかし、キューボールがテーブルの壁に当たったときは、停止するだけです。私はそれが滑らかに実際のプールキューボールのように壁から跳ね返りたいです。

キューボールは基本的な球ゲームオブジェクトです。壁はコライダー付きの基本キューブです。

私はVector3.Reflectを試しましたが、成功しませんでした。それはちょっと戻ってきたようですが、ただちに止まります。

助けがあれば助かります。

+0

'Vector3.Reflect'を使用してコードを提供してください。 – sokkyoku

答えて

2

あなたは、低または無摩擦でPhysicMaterial(両方dynamicstatic)、bounciness = 1Bounce Combine = Maximumを作成し、PhysicMaterialあなたの球のrigidbody

+0

これはうまくいきました。壁に当って3回目または4回目のように見えます。私の球体の回転が凍っているとはどういうことでしょうか? – flakeyjake

+0

回転の凍結はこれに影響を与えるべきではありません(ただし、プールゲームの場合は回転が重要ですので回転を止めないでください)。私はあなたの問題がおそらく他の物理的制約のためにあるのか分かりません – sokkyoku

0

あなたは一つのことを行うことができます適用されるべきです。

壁に衝突するときにボールの速度を格納し、Vector3.Reflectで反射方向を計算し、格納された速度を反射方向にボールに与えます。

これはあなたを助けることを願っています...

ベスト、 のHardik。

+0

私は買ったことを誤解しているかもしれません。たぶん彼が何らかのコードを提供すれば、その理由を理解することができます。 – sokkyoku