【UnityC#講座】オブジェクトを縦横規則正しく並べて生成、色を変える、子オブジェクトにして検索する



【Unityアセットストア公式】初購入特別キャンペーン

期間:日本時間 10月31日 17:00時まで
対象:アセットストアで初購入のユーザー限定
詳細:Unityアセットストアで初めてアセットを購入いただく方限定、アセット全品20%OFF


◆◆◆◆


Unity2018.1.5f1
Windows10

縦横規則正しく/トップ

今回は以下のことをします。

・オブジェクトの生成を好きな数だけ縦横規則正しく並べ、幅や高さも調節できるようにする。
・生成するオブジェクトの色と透明度を変える。
・生成したオブジェクトの中からひとつ検索する。
・生成したオブジェクトを子オブジェクトにした上でひとつ検索する。

このようなことができると広いマップの目印などを気軽に作れるので便利です。

■CubeをPrefabにして規則正しく並んで出現させる

まずは空のオブジェクトを出しましょう。
これを置いた位置を中心にしてPrefabのオブジェクトが出現するようにします。

Hierarchy > Create > Create Empty

出てきたオブジェクトの名前を右クリック、Renameで名前を「Central」に変えます。

続いてCubeを出します。

Hierarchy > Create > 3D Object > Cube

これはHierarchyからProjectにドラッグ&ドロップしてPrefabにしてください。
Prefabとは大量生産するための型のようなものです。
Hierarchyに残ったCubeは削除して構いません。

次はスクリプトを書きます。

Project > Create > C# Script

名前は「LineUp」です。

for文は決められた数だけ処理し、その回数によって処理の結果を変えることができます。
このスクリプトではfor文を二重にし、縦の数だけ横のオブジェクト生成を位置を替えながらするようにしました。

X軸とZ軸の位置の計算が猥雑になっていますが、Centralの位置に縦/横の幅と出現するオブジェクトの数を掛け合わして半分にしたものを足すことでCentralが中央に来るようにしています。
さらにfor文の生成している回数と幅を掛け合わせたものを引くことで生成されたオブジェクトの位置を調整します。
それだけだとオブジェクトの位置が幅半分ほど多いのでその分を引いてできあがり、としました。

さてこのスクリプトをCentralにアタッチし、InspectorにCubeのPrefabをドラッグ&ドロップし、それぞれの数値を設定してください。

縦横規則正しく/LineUp/Inspector

さて、再生してみましょう。
ちゃんとCubeはきれいに並んで生成されているでしょうか?

縦横規則正しく/Cube/Prefab/縦横生成

なお、オブジェクト自体の大きさは考慮していませんので幅がオブジェクトの大きさ以下だとこうなります。

縦横規則正しく/Cube/Prefab/縦横生成/隙間なし

セットするオブジェクトはユニティちゃんでもできます。

縦横規則正しく/ユニティちゃんClone

このユニティちゃんにアニメーションをつけるとこうなります。

縦横規則正しく/GIFアニメ/ユニティちゃん走る

すごい迫力ですね。

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

スポンサーリンク

■生成するオブジェクトの色を変える

さてユニティちゃんからCubeにセットし直してください。
次は生成するオブジェクトの色を変えてみましょう。
スクリプトに書き加えます。

生成したオブジェクトのMaterialにアクセスして色を変えます。
new Color(1.0f, 0.0f, 0.0f, 0.2f)の数字は左から赤,緑,青,透明度になっており0~1で設定します。
しかしPrefabのMaterialが最初からあるものだと透明度を変更できません
なのでMaterialを新たに設定して透明度を変えてみましょう。

Project > Create > Material

名前はTransparency(透明度)、略して「Trans」とでもしましょう。
これをCubeのPrefabにドラッグ&ドロップしてください。
そしてInspectorのTransのMaterialの左下の三角をクリックするとRendering Modeという部分が出てきます。
そこがOpaqueになっているのでFadeかTransparentにすると透明度を変えられます

縦横規則正しく/Material/Fade

さて無事にできたでしょうか。

縦横規則正しく/透明度

■オブジェクトを検索してひとつだけ色を変える

今度は生成したオブジェクトを検索してそれだけ色を変えてみましょう。
生成したオブジェクトはみな全て同じ名前です。

縦横規則正しく/Inspector/Clone

これだとひとつだけ検索できないのでそれぞれのオブジェクトに名前をつけ、その中から特定のものを選んで色を変えるようにします。

さて、InspectorのverNumとhorNumに番号を入れましょう。
名前につけられる数字は0から始まるので、それぞれverticalとhorizontalより小さな数字を入れなくてはいけません

縦横規則正しく/LineUp/Inspector/名前・検索の数字入力欄追加

再生するとHierarchyに名前はこのように表示されます。

縦横規則正しく/Inspector/Cloneに固有の名前

そしてひとつだけ緑色になりました。

縦横規則正しく/ひとつだけ検索して色つける

■子オブジェクトにして検索する

さて次は生成したオブジェクトをCentralの子オブジェクトにして検索、そしてまたひとつだけ色を変えてみましょう。

このようにCentralの子オブジェクトになりました。

縦横規則正しく/Inspector/Cloneを子オブジェクトに

先ほどと同じく色がひとつ変わっているはずですがちゃんとなったでしょうか?

これで今回は終わりです。
お疲れさまでした。

スポンサーリンク

目次に戻る


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください