一番はじめのボール転がしゲーム

# はじめに
今回は私がUnityで一番初めに作ってみた
ボール転がしゲームを手順とともに紹介してみたいと思います！

# プロジェクトの作成
まずUnity HubよりBallProjectというプロジェクト名で、3Dコアを選択してプロジェクトの作成を行います。
プロジェクト名はお好きにどうぞ！
今回は自動で作成されるSampleScene内で実装していきます！

作成後の画像がこちらです
![スクリーンショット 2022-06-24 17.01.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/8d1ac4e4-f524-70ae-3360-b1400233f59a.png)

# Groundオブジェクトの作成
次にボールが転がる地面を作成します。
画像の通り、Hierarchyより3D Object、Planeを選択します。
![スクリーンショット 2022-06-24 17.20.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/37ff1cf8-9ac5-c12f-d140-448bfa3c14f3.png)

選択するとPlaneオブジェクトが作成されるので、ここではGroundと名前を変更しましょう！
![スクリーンショット 2022-06-24 17.21.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/03c4932d-eafa-0cab-d0df-d0369a3c6748.png)

# Ballオブジェクトの作成
次にボールを作成します。
先程と同様にHierarchyより3D Object、Sphereを選択します。
![スクリーンショット 2022-06-24 17.26.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/1134c8f6-2c1a-d148-1e5e-900d82a74cd7.png)

選択するとSphereオブジェクトが作成されるので、今回はBallと名前を変更しましょう！
そして、作成したBallオブジェクトがGroundオブジェクトにめり込んだ状態になっているはずなので
Ballオブジェクトを選択して、InspectorのTransform、Position、Yの値を0から1に変更しましょう！
Groundオブジェクトよりも上に移動するはずです！
![スクリーンショット 2022-06-24 17.32.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/44c31a31-9a58-aeaf-0bc0-5693fd033bd3.png)

# Ballオブジェクトを動かす
次にBallオブジェクトを選択して、InspectorのAdd ComponentからRigidbodyを追加しましょう！
![スクリーンショット 2022-06-24 17.41.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/348835e1-71ad-7c47-c9ea-0ddd6a8e68a4.png)

試しにビルドしてみるとGroundオブジェクトの上にBallオブジェクトが乗っている状態になると思います。
![スクリーンショット 2022-06-24 17.43.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/81c58cee-a45f-aff8-b79a-1b3c4018ca70.png)

これはRigidbodyをアタッチすることでBallオブジェクトに重力や質量を付与することが出来るので、
空中からBallオブジェクトが落ちてきてGroundオブジェクトの上に乗っかるという動きになります！
試しに先程設定したBallオブジェクトのYの値を、1から10に変更してビルドすると
Ballオブジェクトが落ちてくる様子がハッキリと分かると思います。

次にAssetsフォルダを選択して、＋ボタンからC# Scriptを選択しましょう！
そして作成されたScriptを今回はBallControllerという名前にしましょう！
![スクリーンショット 2022-06-24 17.54.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/9d3cec6a-d1a6-a97e-80c7-4f0b2f763873.png)

BallControllerのScriptをダブルクリックすると、エディタが開かれるのでここにコードを書いていきます。
![スクリーンショット 2022-06-24 17.57.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/f521f4e9-ee99-2025-9bf8-bda7fc77bf3f.png)

今回書いたコードがこちらです
```c#:BallController
    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        Rigidbody rigidbody = GetComponent<Rigidbody>();

        rigidbody.AddForce(x * speed, 0, z * speed);
    }
```

![スクリーンショット 2022-06-24 18.04.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/674265ee-5027-2163-94d3-03bb5145d8ce.png)

細かいことは置いておいて、キーボードの上下左右を押すとボールがそれぞれに向かって動くというものです。

最後に作成したBallControllerのScriptをBallオブジェクトにドラッグアンドドロップしてアタッチしてみましょう！
次の画像の通りにRigidBodyの下に追加されていると思います！
![スクリーンショット 2022-06-24 18.03.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/608328/d5e3b199-5af9-72f9-f264-754b81feca75.png)

これで完成です！
ビルドしてキーボードの上下左右を押してBallオブジェクトを動かしてみましょう！

# 最後に
今回はボール転がしゲームの作り方を紹介しました！
難しいことは抜きにして、まずは自分で動かせる物を作ってみるということが
ファーストステップとして重要だと思います。
ここからさらにボールや地面の色を変えてみたり、ボールにカメラを追従させてみたりと色々カスタマイズできると思います！

自分だけのアプリをUnityで作ってみましょう！