###聞きたいこと
キューブ型のオブジェクト2つで90度に交わる壁を作ったが、
他のオブジェクトを突進させると貫通してしまう。
スピードの出しすぎでフレームの処理が追いつかず貫通するというわけではない。
他に気をつけるべきところがあるのか?
###詳しく
キューブ型のコライダーがついたオブジェクトA、Bがあります。
大きさはどちらもx = 5, y = 1, z = 1で、
ローテーションはAがx = 0, y = 0, z = 0、Bがx = 0, y = 90, z = 0という状態です。
位置関係は画像のように2つのオブジェクトが重なる部分を作っています。
これらのオブジェクトのコンポーネントはCube (Mesh Filter)、Mesh Renderer、Cube Colliderの3つだけです。
そこに大きさ1,1,1のキューブ型オブジェクト(Rigidbodyコンポーネント付き)が以下のスクリプトによって上の画像の左奥から壁に向かって移動します。
c#
1float Move_X, Move_Z; 2this.gameObject.GetComponent<Rigidbody>().position += new Vector3(Move_X * 7, 0, Move_Z * 7) * Time.deltaTime;
すると数秒間V字の壁に挟まっていたキューブ型のオブジェクトが壁Aもしくは壁Bを貫通して、貫通しなかった方の壁に辿ってすり抜けていきます。
###稀に起こること
- 上のやり方と逆で、右手前からV字の壁に向かって移動したとき、壁Aまたは壁Bにつたってすり抜けて左奥へ行ってしまう。
- 上記の「詳しく」と同じ動作をしたとき、壁を貫通せず後ろに大きく跳ね返り、操作が効かなくなる時がある。
この場合何をすればいいのでしょうか?どなたか回答お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/23 02:09
2018/12/23 02:10