今回は、Unityで非常によく使うオブジェクト「Cube」の基礎的な使い方について解説したいと思います。
このブログのゲーム制作記録においても頻繁に登場していますが、どういったときに便利に使えるのかなど具体的な使い方を伝えることが出来ればと思います。
Cubeの使い方について
ゲームキューブをイメージすれば簡単ですが、Cubeは立方体オブジェクトの事になります。
とりあえずCubeを出現させてみる
見た目を確認するため、とりあえず実際に出現させてみます。
Cubeをシーンビューに出現させるには、ヒエラルキーウィンドウから右クリックし「3D Object」→「Cube」を選択します。
また、床となるオブジェクト「Terrain」も作成しておきます。
この状態は浮いている状態ですが、ゲームをスタートしてもCubeが落下することはありません。
★併せて読みたい記事
Rigidbodyをアタッチして物理的な挙動を付加する
当たり判定などを察知するコライダーはデフォルトでアタッチされていますが、物理特性を制御するためのRigidbodyは別途アタッチする必要があります。
Cubeを選択した状態で「Add Component」→「Rigidbody」をクリックします。
「Use Gravity」にチェックが入っているのを確認してゲームをスタートしてみます。
すると、今度は宙に浮いている状態だったCubeが床に落下します。UnityちゃんがCubeに勢いよくぶつかるとCubeも反動を受けているのが分かりますね。
Use Gravityをtrueにしておくことで、上のgif動画のように重力の影響を受けるようになります。
Use Gravityをfalseにすると・・・
今度はUse Gravityをfalseにして実行してみます。
初期状態は、宙に浮いた状態で静止しています。
プレイヤーがCubeにぶつかると、真上に飛んでいくのが分かりますね。
重力の影響を受けないので、当然の結果ですね。
Is Kinematicの「true」と「false」の違い
若干ややこしいのがこの「Is Kinematic」という項目。何かというと物理演算を受けるかどうかの設定になります。
デフォルトではオフになっています。
Use GravityがtrueでIs Kinematicがfalseの状態が上の最初の動画の挙動になります。
とりあえずIs Kinematicにチェックを入れてゲームを実行してみます。
はい、プレイヤーが衝突しても全くびくともしません。ややこしいのが「true」だと影響を受けなくて「false」だと影響を受ける点です。
基本的にスクリプトで指示し「true」や「false」に変更する使い方が多いと思います。
この状態でUse GravityをONにしてもIs Kinematicが優先されるので注意が必要です。
ちなみに、Rigidbodyの項目にある「Mass」の値を大きくすることで、物体の質量を増やすことが出来ます。これにより衝突時の挙動を変更することも可能です。
具体的な使い方①Cubeをジャンプの踏み台として使う
Cubeの使い方はさまざまありますが、たくさん用意するパターンとしてジャンプの足場として使うことが出来るでしょう。
動画にするとこんなイメージです。
Cubeを積み重ねることで、ぐらつく踏み台を再現することが出来ます。数を増やすことで難易度の調整も可能でしょう。
②ビリヤード台やドミノ倒しとして使う
RectToolやScaleを変えて細長い立方体を作ります。
それらをTerrainの端に組み合わせることで、ビリヤード台のようなオブジェクトになります。
同じように縦長のCubeをたくさん用意することで、ドミノ倒しを作る際にも役に立つと思います。