Unity5.6.0f3
Windows10
□
今回は今までよりもゲームらしいものを作ります。
タイミング良く画面をタッチすることで最適の角度と力を決めてより遠くにボールを目指すゲームです。
今回のプロジェクト名は「Flying Ball」にしました。
さあ、さっそくオブジェクトを設置していきましょう!
■ボールを飛ばす
まずSphereとPlaneを出します。
Hierarchy > Create > 3D Object > Sphere
Hierarchy > Create > 3D Object > Plane
位置はこの通りにしてください。
白と白で見にくいならばMaterialをアタッチしてそれぞれ色を変えましょう。
Project > Create > Material
出したらInspectorのAlbedoから色を変えてください。
次はスクリプトを作ります。
C#のShotスクリプトを作ってください。
Input.GetMouseButtonDown(0)は左クリックに反応しますが、右クリックは(1)、真ん中クリックは(2)になります。
AddForceはRigidbodyに力をかけて動かします。
そうしたら、
1.SphereのComponentにRigidbody追加。
2.Sphereにスクリプトをドラッグアンドドロップ。
3.SphereのInspectorのShotのRigidbodyの欄にRigidbodyつけたSphereをドラッグ&ドロップ。
4.thrustの空欄に加えたい力の数値を入力。
さてこれで一旦再生してみましょう。
画面を左クリックしたら無事Sphereが前方に飛んだでしょうか。
あとInspector/Transform/RotationのX軸の数値を変えることで飛ぶ角度を変えられます。
次はCameraがSphereを追うCameraPosスクリプトを書きます。
これをMain Cameraにドラッグ&ドロップしてください。
再生した時にちゃんとSphereを追って行ったでしょうか?
■角度を決められるようにする
次は動く棒をタイミングよくクリックで止めてボールが飛ぶ角度を0.1~90度までの間で決定できるようにします。
まずはImageを出してください。
Hierarchy > Create > UI > Image
出したらInspectorからWidthを129、Heightを9にします。
Inspector > Image (Script) > Color
そこからImageの色を替えられるので好きなものにしてください。
次は俗に空のオブジェクトと言われるCreate Emptyを出します。
これはゲーム上では見えず触れられもしないため、位置を取得したりスクリプトを入れておくのに便利です。
Hierarchy > Create > Create Empty
これをクリックするとHierarchyにGameObjectが現れます。
そして次からが少々ややこしいのですが、
1.GameObjectを同じHierarchyのCanvasにドラッグ&ドロップして子オブジェクトにする。
2.ImageをGameObjectにドラッグ&ドロップして子オブジェクトにする。
このようになります。
それからGameObjectとImageをそれぞれこのような位置にしてください。
さあ再びShotスクリプトを開いてください。
ここに角度を決めるコードを追加します。
そうしたらSphereのInspectorのスクリプトの欄に空欄ができるのでImageの親オブジェクトのGameObjectをドラッグ&ドロップします。
そうするとこのようになりました。
無事角度を変えて飛んだでしょうか?
InspectorのTransformから確認してください。
スポンサーリンク
■飛距離の表示・やり直しボタンを設置する
次はボールを飛ばす力の入力、と行きたいところですが、やはりどれくらい飛んだか分からないとつまらないし、やり直すのに停止と再生のボタンを押すと時間かかるのは不便なので先にここを何とかしましょう。
まずはTextを出します。
Hierarchy > Create > UI > Text
そうしたらSceneを操作するこの2Dの拡大・縮小のボタンを押して操作します。
Scene上に青い4つの丸が出るのでそれを外側の白い枠線の角にそれぞれ合わせてください。
次はInspectorを次のようにします。
Font Sizeを見やすい大きさへ。
Alignmentを上下左右の真ん中へ。
Colorを見やすい色へ。
そしてついでにComponentでShadowを出すとTextに好きな色で影がつけられます。
Outlineを出すとTextのふちに色をつけられます。
ここら辺は自由に設定してもらって構いません。
次はボタンを出します。
Hierarchy > Create > UI > Button
Textと同じように操作して適当な大きさ、位置に置いてください。
ボタンの中の文字はButtonの子オブジェクトのTextのInspectorから変えます。
次はスクリプトを書きます。
Shotスクリプトに入れても良いのですが、ここに載せるには長くなるので新たに書くことにしましょう。
名前はLandingにしました。
なぜ-10で終わるようにしたかと言うと、Sphereの角度を変えるとY軸の位置も変わって0未満になってしまうことが分かったのでそこまで引き下げました(笑)
上の方にあるusingのところが追加されていることを忘れないでください。
そうしたらこのスクリプトもSphereにドラッグ&ドロップし、InspectorのLandingスクリプトの空欄にTextをドラッグ&ドロップします。
Buttonの子オブジェクトのTextと間違えないようにしてください。
最初にTextは右クリックで名前変えておくべきでしたね・・
次にButtonにセットしましょう。
まずButtonのInspectorのOnClickを見つけてください。
その空欄に使うスクリプトを入れたオブジェクトをドラッグ&ドロップしてください。
今回はSphereですね。
そうしたらNo FunctionからLanding、Reloadとたどってクリックして出来上がりです。
その結果こうなりました。
うーむ、リロードするとなぜかMateralの色がおかしくなりますね。
申し訳ないのですが私にも原因は分かりません。
どうにかする方法が分かったらぜひ教えてください(笑)
—追記—
解決しました。
Window > Lighting > Setting > Global maps
・Auto Generateのチェックボックスを外す
・Generate Lightingのボタンを押す
これで色がおかしくなりません。
—追記ここまで—
■Sliderを利用して受け渡す力を決定する
次はSliderというUIを使います。
Hierarchy > Create > UI > Slider
Slider
Background
Fill Area
Fill
Handle Slide Area
Handle
このようなものが出てきましたが、Handle Slide Areaがつまみの部分はいらないのでまずそれを削除します。
次にSliderのInspectorのSlider(Script)を見て下さい。
まずはInteractableのチェックをはずします。
こうすると再生中につまみ部分をクリックしても動かせなくなります。
次にValueというスライダーがあるので動かしてみましょう。
そうすると画面上のSliderの中身が動くのですが、一番端まで行きません。
それを修正するにはFill AreaのRect TransformのLiftとRightの値、そしてFillのRect TransformのWidthの値を全て0にします。
次は色を替えます。
前景はFillのImage(Script)のColorから好きな色に変えてください。
拝啓はBackgroundのImage(Script)のColorのアルファを0にして透明にします。
次は向きを替えます。
Hierarchy > Slider > Slider(Script) > Direction
DirectionをBottom To Topにしてください。
あとはSceneで位置と大きさを調節して完成です。
このようにしました。
そうそう、UIは基本的にHierarchyの下に配置されたものが手前に来るようになっています。
なのでもしSliderがTextを隠してしまうようならHierarchyで上の位置に来るようにドラッグ&ドロップしてください。
それではまたShotスクリプトを開いてください。
ここにSliderを動かすスクリプトを書き加えます。
保存したらSphereのInspectorのShot(Script)にSliderという空欄ができているのでHierarchyのSliderをそこにドラッグ&ドロップします。
さあちゃんとできているか確認してみましょう!
■Cubeで地面に模様をつける
さて、下に何もないとどれくらいの高さをどれくらいのスピードで飛んでいるのかさっぱり分かりませんね。
なので地面に縞模様をつけるのでCubeを出してください。
Hierarchy > Create > 3D Object > Cube
それをこのようなScaleにしてください。
色はMaterialで好きにつけてください。
できたらProjectのAssetsにCubeをドラッグ&ドロップしましょう。
そしてスクリプトを書きます。
さて無事に縞模様は出たでしょうか?
■まとめ
今回はオブジェクトを動かしたり角度を替えたりしました。
さらにImageやSlider、Button、TextといったUIも使っています。
これだけあれば最低限のゲームは作れると思いますが、実はまだ教えたいことがあり、それはこの記事が長くなったので次回に回します。
どうかお楽しみに!
↓ ↓ ↓
この記事の続きです。
【Unity講座】Flying Ballを強化する【PlayrePrefs、Skybox、Particle System、コルーチン】
2019年6月27日
【UnityC#講座】SliderでHPバーを作る
スポンサーリンク