私はある種のプールゲームに取り組んでいます。テーブルを作成するために、私は側面として立方体を使用しました。内蔵の物理エンジンを使用して、これらの側面をボールと相互作用させたいと思います。悲しいことに、私はそれを機能させることができません。
これが私がしたことです。側面として立方体を作成し、ボール用の球を作成しました。球を移動するために、rigidbody.MovePosition関数を使用しています。立方体と球の両方に衝突型加速器と剛体が取り付けられており、重力がオフになっています。
球体の動きは問題ありませんが、立方体と衝突すると立方体が飛んでいきます。立方体は動かない壁であるはずなので、すべての軸の回転と動きを制限しました。ただし、制約を使用すると、物理エンジンがおかしくなります。球が停止したり反対方向に移動したりする代わりに、球は単に立方体を通過します。明らかに、何かがおかしいので、同じことを理解するのに助けが必要です。
前もって感謝します。
球を移動するために使用されるコードは次のとおりです。
public float movePower = 10.0f;
// Update is called once per frame
void Update ()
{
if(Input.GetKey(KeyCode.LeftArrow))
{
rigidbody.MovePosition(transform.position + Vector3.left* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.RightArrow))
{
rigidbody.MovePosition(transform.position + Vector3.right* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.DownArrow))
{
rigidbody.MovePosition(transform.position + Vector3.down* movePower * Time.deltaTime);
}
if(Input.GetKey(KeyCode.UpArrow))
{
rigidbody.MovePosition(transform.position + Vector3.up* movePower * Time.deltaTime);
}
}