
Unityは、インストールしたけど、何から始めて良いかわからない…

よくある悩みだと思います。
まずは動くものを作り、成功体験を積み上げることが上達への近道です。
今回は、キーボード操作で、球が転がる「ボールゲーム」を作ります。
ゲーム作り入門者向けの解説内容になっていますので、「手取り早く動くものが作りたい!」という方はぜひ、成功体験を積んでいってくださいね!
専門用語はできる限り、解説していきますが、もしわからない用語がありましたら、用語辞典をご確認ください。
では早速、Uniyエディタを起動して始めていきましょう。
オブジェクトの追加
地面の作成
最初に球が転がる地面を作成します。
CHECKに作業を記載し、下に解説を書いていきます。解説なしで進める方は、CHECKのみご確認ください。
GameObject > 3D Object > Plane の順に選択します。
HierarchyウインドウにPlane(平面)が追加されて、Sceneビュー上に平面が出現します。
【オブジェクト名の変更】3パターン
Hierarchyウインドウ上のPlaneを選択した状態で、
- (Plane上にカーソルを合わせたまま)左クリック
- 右クリックしてメニューから[rename]を選択
- Inspectorウインドウの最上部から直接変更
プレイヤーの作成
ゲーム上でプレイするプレイヤーを作成します。今回は、球をプレイヤーにします。
GameObject > 3D Object > Sphere の順に選択します。
HierarchyウインドウにSphere(球)が追加されて、Sceneビュー上に球が出現します。
オブジェクト名の変更方法は先ほどと同様に行ってください。
ここで問題発生!
Playerが、Groundにめり込んでしまっています。これは、平面・球のオブジェクトの中心がScene上の原点に配置されてしまうためです。Playerの方を移動して修正します。
【オブジェクトの移動】2パターン
1.オブジェクトの中心にあるシーンギズモをドラックする
2.InspectorウインドウのTransformで数値を変更する
1.オブジェクトの中心にあるシーンギズモをドラックする
2.InspectorウインドウのTransformで数値を変更する
今回は、1.の方法で移動を実施します。
移動したいオブジェクト(Player)をクリックして、アクティブにします。
オブジェクトのシーンギズモの緑色(Y軸)を上にドラック(クリックしたまま、マウスを移動)して、InspectorウインドウのTransformのPosition_Yが0.5になるように移動します。
移動したいオブジェクト(Player)をクリックして、アクティブにします。
オブジェクトのシーンギズモの緑色(Y軸)を上にドラック(クリックしたまま、マウスを移動)して、InspectorウインドウのTransformのPosition_Yが0.5になるように移動します。

オブジェクトを動かす
Unityではオブジェクトを動かすには、「スクリプト」というプログラムを書く必要があります。
スクリプトの追加
HierarchyでPlayerを選択して、Inspectorの下の方にある[Add Component]をクリックします。

[New Script]を選んで、Nameを入力して、[Create and Add]をクリックします。(Name:PlayerControllerとします)
ProjectウインドウのPlayerにコンポーネントの一つとしてスクリプトが追加されます。

プログラムを書く
Unityには、プログラムを書く機能はありませんので、Unityと一緒にインストールしたVisualStudioを使ってC#のプログラムを書いていきます。
Projectウインドウのスクリプト(PlayerController)をダブルクリックして、VisualStudioを起動します。骨格は予め書かれているので、必要な部分のみ追加していきます。

実際にプログラムを書いていきます。
ここでは、オブジェクトに力を与える役割を持つRigidbodyコンポーネントとXYZ軸の座標を取得するVector3を使用します。枠部を以下のように入力します。
ここでは、オブジェクトに力を与える役割を持つRigidbodyコンポーネントとXYZ軸の座標を取得するVector3を使用します。枠部を以下のように入力します。

入力を終えたら、[ファイル] >[保存]をして、Unityエディタに戻ります。
そして、プログラムで定義したRigidbodyを動かしたいオブジェクト(Player)に追加します。
Inspectorウインドウ下部の[Add Component]から、[Physics]>[Rigidbody]の順にクリックします。
Inspectorウインドウ下部の[Add Component]から、[Physics]>[Rigidbody]の順にクリックします。


これで、プログラムの指令が動かしたいオブジェクト(Player)に伝わります。
ゲームの再生
ゲーム実行時に、Gameビューが全画面表示になる設定をします。Gameビューの[Maximize On Play]をクリックしてONにします。

設定が完了したら、いよいよゲームを実行します。
Unityエディタ上部にある[▶︎:再生]ボタンをクリックします。

Gameビューが全画面表示になりましたら、キーボードの矢印キーを操作します。
ボールは転がりましたか?
これで、オブジェクトを自由に動かすことができるようになりました。
このように、Unityではとても簡単に、ゲーム開発ができます。
次回からは、このプロジェクトを改良して色々な機能に触れていきたいと思います。