[UNITY]マリオの不思議床を作る。(一方向のみ乗れる床)

どうも、えんちゃです。
大乱闘スマッシュブラザーズSPさいっこうに面白いですね。

スマブラにクリアゲッターって機能があって
なんらかの条件を満たすと画像をゲットできるんですね
木曜日仕事の夜に買って…さっき20時間プレイしたという条件満たして

ちょっとスマブラ漬けを反省しています。
でも、たのしいんだもん
時間を忘れさせるゲームを作ることを目標に今日も勉強します。

さて、今回はマリオの不思議床ですが、
宙に浮いてる薄い床のことですね。

床の下でジャンプすると通り抜けて、床に乗れる

割と初期から当たり前のよう存在していますけど
普通にわけわからんですね。不思議床となずけました。
正式名称あったらごめんなさい。

2次元の場合

2次元ゲームでの不思議床はあっという間にできます。
なんせその機能はUNITYが作ってくれてます。

不思議床にしたいオブジェクトのインスペクターに Box Collider 2D と Platform Effector 2D
を追加します。

まず、Box  Collider 2D の Used By Effector にチェックを入れます
そうすることによって追加した Platform Effector 2Dを使用することが出来ます。

あとは Platform Effector 2D の Use One Way にチェックを入れてあげるだけで完成します。

3次元の場合

Platform Effector 2D は名前の通り3次元ゲームには使えません。
自力で作るしかないみたいです。 (代替えコンポーネントがあったら教えてください><)

UNITYのCollider には IsTrigger というものがあり、

これにチェックを入れると物理的な挙動がなくなりオブジェクト同士で反発せず、すり抜けるので
これを利用していきます。

イメージ的にはこのような形になります。

不思議床の表層より少し上に判定用にオブジェクトを用意します。
判定用が接触しているとき、
下の不思議床に接触している場合は透過のまま、
下の不思議床に接触していない場合はIsTriggerをオフ(物理挙動をオン)にします。

コメント

タイトルとURLをコピーしました