Unity備忘録15頁目「UIをやる前に少しの準備」

江上宿六です。

 

UI関連の事をやりたいと思ったんですけども、その前に今のSphereが降ってきて

Cubeで接触するやつをもう少しいじってみたいと思いまして。

 

・オブジェクトの配置を見直す

見下ろし型の視点にし、ライトも真上に配置したいと思います。 それぞれ

インスペクターでPositionを(0,15,0)、Rotationを(90,0,0)に設定します。

ゲームビューで上から視点になってるか確認しましょう、真っ白ですが。

f:id:y6yegami:20180719145308p:plain

また、横から見ていたためPlaneの配置をZが5にしていましたが、それを0にし、

それに伴ってSphereGeneratorスクリプトのpzを決めるRandom.Rangeの範囲を

-5.0f~5.0fに変えます。 また、生成する高さ(y)も10にしておきましょう。

f:id:y6yegami:20180719145744p:plain

 

・マテリアルを追加して色を設定する

白一面でよくわからなくなってきたのでオブジェクトにマテリアルを設定します。

プロジェクトビューのCreateからMaterialを選択する事で生成されます。

f:id:y6yegami:20180719150608p:plain

このAlbedoの所をクリックすると色を選べるので、Cube用は青、Sphere用は赤、

Plane用は明るい灰色みたいな感じで設定し、それぞれオブジェクトにアタッチを

しましょう。 SphereはPrefabの方にアタッチです。

f:id:y6yegami:20180719151540p:plain

実行したらなかなかカラフルで見やすい感じになりました。

マテリアルの説明はそのうちしたいと思いますけど、当面はないです。

 

・衝突でSphereをはじき出せるようにする。

いまはちょこっと押すくらいですけど、Sphereと衝突した時に力を加えて

吹っ飛んでいくようにしてみます。 これにはRigidbodyのAddForceを使います。

f:id:y6yegami:20180719152819p:plain

まずベクトルを宣言しています。 それに衝突したRigidbodyの位置から自身の

Rigidbodyの位置を引いたものを代入しました。 これで飛ばす方向を取得します。

そのベクトルを正規化、長さ1になるようにしてから500倍にしています。

 

そして衝突したRigidbodyにAddForceを使ってベクトル方向に力を加えます。

これで衝突時にそれぞれの位置情報を参考にして吹っ飛んでくれます。

 

とりあえずこんな所ですね。 だいぶプロジェクトビューのアセットが

ごちゃごちゃになってきたのでフォルダを作るなりして整理しても良いかも

しれないですね。 次回はUIをいじってみたいと思います。