動く足場

アクションゲームでよくある、あの動く足場。
調べる前に手を動かすと、スクリプトに書いちゃうやつ。
Unityだと簡単にできます。

UnityはGameObjectを入れ子にできます。
子にされたGameObjectの位置は、親のGameObjectの位置に対して相対位置になります。
つまるところ、動く足場の子要素にすると、一緒に動くので目的を達成できます。

残りは、どうやってプレイ中に動く足場の子要素にするか、という話になりますが、そこはちゃんと用意されています。

  • 子要素にする
    子要素にしたいGameObjectのTransform.SetParent(親要素のTransoform)
  • 子要素から外す
    子要素から外す場合は、親の代わりにnullを渡す

最後にこの方法の欠点です。
親要素が重力加速度より速い速度で落下しても、上に載っている物体は置いて行かれません。物理的にリアルなゲームにしたい場合は、この挙動は不自然になります。