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をドラッグ&ドロップし、それぞれの数値を設定してください。
さて、再生してみましょう。
ちゃんとCubeはきれいに並んで生成されているでしょうか?
なお、オブジェクト自体の大きさは考慮していませんので幅がオブジェクトの大きさ以下だとこうなります。
セットするオブジェクトはユニティちゃんでもできます。
このユニティちゃんにアニメーションをつけるとこうなります。
すごい迫力ですね。
この作品はユニティちゃんライセンス条項の元に提供されています
スポンサーリンク
■生成するオブジェクトの色を変える
さてユニティちゃんから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にすると透明度を変えられます。
さて無事にできたでしょうか。
■オブジェクトを検索してひとつだけ色を変える
今度は生成したオブジェクトを検索してそれだけ色を変えてみましょう。
生成したオブジェクトはみな全て同じ名前です。
これだとひとつだけ検索できないのでそれぞれのオブジェクトに名前をつけ、その中から特定のものを選んで色を変えるようにします。
さて、InspectorのverNumとhorNumに番号を入れましょう。
名前につけられる数字は0から始まるので、それぞれverticalとhorizontalより小さな数字を入れなくてはいけません。
再生するとHierarchyに名前はこのように表示されます。
そしてひとつだけ緑色になりました。
■子オブジェクトにして検索する
さて次は生成したオブジェクトをCentralの子オブジェクトにして検索、そしてまたひとつだけ色を変えてみましょう。
このようにCentralの子オブジェクトになりました。
先ほどと同じく色がひとつ変わっているはずですがちゃんとなったでしょうか?
これで今回は終わりです。
お疲れさまでした。
スポンサーリンク