質問: ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/9141405e518e5b5155e20b4c0cd9435e.png) 上記の画像をご覧ください 大きなフロアがありその外周部に太い柱が立っています その外側(画像右下)は奈落です ユニティちゃんの足元は少しだけ足場が飛び出しています そしてキャラクターコントローラーだと1cmでも床があればのれてしまいます ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/70d73532bcba3f23dd134f86230b0b43.png) 考えていること 1.壁の当たり判定を見た目より少し大きくする 2.壁と関係なく見えない壁を作る 3.柱を床ギリギリまでぴっちり合わせる 4.真下にキャラコンより小さな球を常に飛ばして 「乗れてない状態」を検出して さらに足場の方向を検出して ユニティちゃんをズラす 1はMesh Colliderだとできません 2は作業量とデバッグが大変そうです 3は床に柱をめり込ませている場合 デプスバッファの問題で使えない時があります 4は限定的な状態のために常に処理するのもスマートではない気がします 追記 Character ControllerのSkinWidthを大きめにすると 改善するのですがSkinWidthは 壁にゴリゴリ当たってると普通に貫通するので (極端に大きくするとわかりやすいです) いまいちあてにできない感じがします 質問 例えば一枚目の画像でユニティちゃんが引っかからずに落ちていくには どういった方法がベストですか? 2を地道にやるのか、複合的なのか、スクリプトなのか 回答、ご意見よろしくおねがいします
回答: 4の類型となるでしょうか、「BoxCast」「SphereCast」という機能があります。 使い方は下記サイトが詳しいです。 テラシュールブログ - 【Unity】SphereCastやBoxcastで、球や箱のあたり判定が通過できるか判断する 「Castした結果、床に当たらなかった場合はColliderをオフにする(または小さくする)」 という処理を入れれば落下させることが出来るかと思います。