【UnityC#講座】様々な色のボールが次々に出てくるようにする


Unity5.6.0f3
Windows10

今回からUnityを使って何か簡単なものを作ってみましょう。
習うより慣れよの精神です。
まずはプロジェクトを作ってください。
名前は何でも良いのですが私は「Color Ball」にしました。

次はSceneを保存しましょう。

File > Save Scenes

CollorBall/Save Scene

Save Scenes as」は既存のSceneのファイルとは別に新しく作ります。
名前は「Main」とでもしておいてください。
急にUnityやOSにトラブルが起きて消えてしまうことがあるのでこまめにSave Sceneをしましょう。

■オブジェクトを配置する

次はPlaneとSphereを出します。
Hierarchyのタブの下にあるCreateから以下の通りにクリックしてください。

Create > 3D Object > Plane
Create > 3D Object > Sphere

Planeは板状のオブジェクトでSphereは球状のオブジェクトです。

そうしたらそれぞれのInspectorのTransformを以下のように設定します。

CollorBall/PlaneのTransform

CollorBall/SphereのTransform

さて、無事オブジェクトが配置されたら一度ゲームを再生してみましょう。

CollorBall/再生・一時停止・最初から

画面上部中央のこの3つのボタンですが、左から再生・一時停止・最初から再生となっています。
今回は左端の再生ボタンを押してみましょう。
ボタンが青く光ったらGameを見てください。

・・・何も起きませんね。
そうしたらもう一度再生ボタンを押して再生を止めてください。

■Sphereを跳ねさせる

SphereのInspectorの一番下にAdd Componentがあるのでそれをクリックすると入力欄と色んな項目が出ます。
その入力欄にRigidbodyと入れて出てきたそれをクリックしてください。
そうするとSphereのInspectorにRigidbodyが加わり、再生するとSphereが落ちてくるようになります。

しかし、落ちてくるのは良いのですがまったく跳ねないというのも不自然ですよね。
次はProjectタブの下にあるCreateから次のようにクリックしてください。

Create > Physic Materiale

CollorBall/Physic Material

CollorBall/Bounciness

AssetsにPhysic Materialeが加わり、そのInspectorのBouncinessを見てください。
これがどれくら跳ねるかを決めるもので、0~1まで自由に設定してください。

CollorBall/SphereCollider

次にSphereのInspectorにあるSphere ColliderのMaterialの空欄にPhysic Materialeをドラッグ&ドロップします。
そうしたら再生して試してみましょう。

Unity – マニュアル: Physic Material

Physic Materialeの詳しい使い方は公式マニュアルを読みましょう。
Bounce Combineをいじるとより高く跳ね返させることができます。

■オブジェクトに色をつける

ProjectのCreateの中にあるMaterialをクリックします。

Project > Create > Material

PlaneとSphereの分、2つを出しましょう。

CollorBall/Material

MaterialのInspectorの中にあるAlbedoの長方形の部分をクリックすると色を決められます。
次にMaterialをHierarchyのオブジェクトの名前にドラッグさせるか、オブジェクトのInspectorのMesh Rendererの中のMaterialsをクリックして出てくるElement 0の欄にドラッグすると設定した色に替わります。

CollorBall/色付きSphere、Plane

■ランダムにSphereの色が変わるようにする

次はスクリプトからSphereのマテリアルの色をランダムに替えてみます。
スクリプトファイルをクリックしましょう。

CollorBall/C# Script

Project > Create > C# Script

あるいは、

Project > Assetsフォルダ右クリック > Create > C# Script

でもできます。
名前は「change」とでもしておいてください。
ファイルをダブルクリックすると統合開発環境(IDE)が立ち上がります。

統合開発環境がMonoDevelopの場合、丸ごとコピペすると日本語が文字化けすると思いますが気にしないでください。
このスクリプトファイルをSphereにドラッグ&ドロップするか、SphereのInspectorのAdd Componentからchangeを選ぶとゲームを再生するたびにSphereの色がランダムに変わります。

スポンサーリンク

■Sphereを次々に出す

次はSphereを一定時間ごとに次々に出るようにします。

まずはSphereをPrefabにしましょう。
Prefabとはひとつのオブジェクトをゲーム中にいくつも使いたい時にする処理です。
やり方は簡単でPrefabにしたオブジェクトをHierarchyからAssetsにドラッグ&ドロップをするだけです。
Hierarchyに残ったSphereはもう必要ないので右クリック&Deleteで削除してください。

ProjectのAssetsにあるSphereのPrefabをSceneかHierarchyにドラッグ&ドロップするとたくさんのSphereを作れます。

CollorBall/Prefab

次はスクリプトで自動でSphereが次々に出てくるようにします。

Project > Create > C# Script

名前は「Create」とでもしておいてください。

そのスクリプトファイルをHierarchyのPlaneにドラッグ&ドロップするのですが、Main CameraやDirectional Lightに入れても大丈夫なはずです。
そして次は先ほどのスクリプトではしなかったことなのですが、PlaneのInspectorを見て下さい。

CollorBall/Prefabを入れる欄

sphereの空欄があるのでそこにSphereのPrefabをドラッグ&ドロップをします。
さて、再生してみましょう!

CollorBall/Sphereが次々に出る

はい、カラフルなボールたちが続々と出てくるようになりました。

先ほどのスクリプトを軽く説明をします。
Publicを変数の前につけるとInspector上で変更することができます。
変数は頭文字を小文字にするのが分かりやすさのための習慣のようです。
Privateはその逆でInspectorに出ないようにするもので別につけなくて構いません。
変数とは入れ物で色んな数値やテキストを入れることができます。
floatは小数点を使う数値を入れる変数の前につけるもので、小数点を入れる数値は最後に「f」をつける必要があります。
Time.dletaTimeは時間を計るもの。
if()は英語の通り「もし~ならこうする」という条件で動くものです。

■ボールの数を数える

次はテキストを画面に出してボールを数えてみましょう。
まずはTextを設置します。

Hierarchy > Create > UI > Text

CollorBall/Text

Inspectorはこのようにしてください。
適当でも構いませんが十分なスペースがないと出てくる文字が表示されないことがあるので十分なスペースをとってください。
Textを出すと一緒にCanvasEventSystemも出ますが今回は放っておきましょう。

次はCreateスクリプトに追加しましょう。

一番上の「using」の部分に追加が必要なので忘れないでください。
intは整数を扱います。
Start(){}の中身は開始時に一度発動し、Update(){}は常に発動し続けます。

さて、PlaneのInspectorのCreateに新たな空欄があるでしょう。

ColorBall/TextのCreateのTextのための欄

そこにTextをドラッグ&ドロップしてください。

CollorBall/ColorBall完全版

はい、無事にできたでしょうか?
今回はゲームと言えないようなものでしたがUnityのおおよその機能が理解できたと思います。
次回はよりあなたの世界を表現しやすくなる機能を紹介するつもりなので楽しみにしていてください。

ではでは。

スポンサーリンク

目次に戻る