Unity事例ノート

UNITY

動く床の上で一緒に移動する(方法2)

動く床の実装について、前回記事でも取り上げましたが、今回は別の方法でつくってみます。

前回と動きはまったく同じなのですが、最初に床と空のオブジェクトの親子関係をつくっておく方法です。

関連記事:
エレベーターをつくる
乗れば上昇していく床
乗れば下降していく床
行き帰りできるムービングウォーク
エリアに入れば自動で動く(ムービングウォーク)
階段を上るオブジェクト移動(SimpleMove)

床オブジェクトの動き

Cubeオブジェクトを新規作成し、名前をFloorに変更。

座標をすべて0にして、スケールを変更しました。

このような形状で、配置されています。

Floorに動きをつけます。

FloorMove.csを作成し、Floorに追加します。

FloorMove.csを記述します。

プレイして、まずは往復運動を確認します

プレーヤーのオブジェクト

もう一つCubeオブジェクトを作り、名前をPlayerに変更。

Yを少し上げて、上から落とすように配置します。

このように配置しています。

Playerにリジッドボディをつけます。

親子関係をつくる

PlayerSet.csを作成し、Playerに追加します。

PlayerSet.csを記述します。

プレイして動きを確認しましょう。

クリックでジャンプして、床に着地します。

new GameObject()により、親としての空のオブジェクト生成。

「空のオブジェクト」の子オブジェクトとなって、床と同一の動きを保ちます。

わざわざ「空のオブジェクト」を作成するのは、落下時の変形を防ぐためです。

床(Floor)を親とした場合、落下したときに親のスケールの影響を受けて、オブジェクトがゆがんでしまうことがあります。

関連記事:【Unity C#】落下中のオブジェクトのゆがみ

ここでは、「空のオブジェクト」の子オブジェクトとなることで、Floorのスケールとの関連性を無くしています。

関連記事:
動く床の上で一緒に移動する(方法2)
エレベーターをつくる
乗れば上昇していく床
乗れば下降していく床
行き帰りできるムービングウォーク
エリアに入れば自動で動く(ムービングウォーク)
階段を上るオブジェクト移動(SimpleMove)

SCHOOL教室案内