コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity 入門】【チュートリアル】玉転がしゲームを作る 2. プレイヤーの移動

目次

前回のチュートリアル

はじめに

f:id:baba_s:20171208094600p:plain

前回は、Unity プロジェクトの準備と、床と玉の作成を行いました
今回は、プレイヤーとなる玉をカーソルキーで転がせるようにしていきます

玉を動かすためのコンポーネント(機能)の設定

まずは玉を動かす準備をしていきます

f:id:baba_s:20171208095542p:plain

「Player」を選択して、「Add Component」ボタンを押します

f:id:baba_s:20171208095553p:plain

入力欄に「Rigidbody」と入力して、「Search」の欄に表示された
「Rigidbody」を選択します

f:id:baba_s:20171208095726p:plain

これで、「Ridigbody」というコンポーネント(機能)が玉に設定されました
この「RIgidbody」というコンポーネントは、
オブジェクトを動かしたり、重力を与えたりするために使用されるものです

しかし、「RIgidbody」を設定しただけでは玉は動かないので
「Rigidbody」を使用して玉を動かすためのスクリプトを作成していきます

玉を動かすスクリプトの準備

f:id:baba_s:20171208100222p:plain

「Project」の下にある「Create」ボタンを押して「Folder」を選択します

f:id:baba_s:20171208100331p:plain

そして、作成したフォルダに
「Scripts」(スクリプト)という名前を入力して Enter を押します

f:id:baba_s:20171208100616p:plain

次に、作成した「Scripts」フォルダを右クリックして
「Create>C# Script」を選択します

f:id:baba_s:20171208100944p:plain

そして、作成したファイルに
「PlayerController」という名前を入力して Enter を押します

f:id:baba_s:20171208101035p:plain

これで、「PlayerController」という名前のスクリプトが準備できました
スクリプトは、プログラムを記述するためのファイルで、
今回作成した「PlayerController」という名前のスクリプトに
玉を転がすためのプログラムを記述していきます

玉を動かすスクリプトの作成

f:id:baba_s:20171208102106p:plain

さきほど作成した「PlayerController」をダブルクリックします

f:id:baba_s:20171208102154p:plain

すると、お使いの環境に合わせて Visual Studio や MonoDevelop などの、
プログラムを書くためのエディタが起動するので、
下記のプログラムをコピーして貼り付けます

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 20; // 動く速さ

    private Rigidbody rb; // Rididbody

    void Start()
    {
        // Rigidbody を取得
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        // カーソルキーの入力を取得
        var moveHorizontal = Input.GetAxis("Horizontal");
        var moveVertical = Input.GetAxis("Vertical");

        // カーソルキーの入力に合わせて移動方向を設定
        var movement = new Vector3(moveHorizontal, 0, moveVertical);

        // Ridigbody に力を与えて玉を動かす
        rb.AddForce(movement * speed);
    }
}

(今回はプログラムの解説は割愛させていただきます)

f:id:baba_s:20171208104555p:plain

上記のようにプログラムを貼り付けたら
Ctrl + S を押すなどしてスクリプトを保存します

f:id:baba_s:20171208102835p:plain

これで、玉を動かすためのスクリプトの作成が完了したので Unity に戻ります

玉を動かすスクリプトの反映

f:id:baba_s:20171208103042p:plain

さきほど作成した「PlayerController」を「Player」にドラッグして離します

f:id:baba_s:20171208103335p:plain

そして、「Player」を選択すると
「PlayerController」が反映されていることがわかります

f:id:baba_s:20171208103501p:plain

これで、エディタ上部の再生ボタンを押してゲームを再生してみます

そして、カーソルキーを入力すると玉が転がることがわかります
また、床の外側まで移動すると、重力に従って玉が落下することもわかります

これで、玉を動かすことができるようになりました

f:id:baba_s:20171207224204p:plain

Unity メニューの「File>Save Scenes」を選択するか、
Ctrl + S を押して、ここまでの作業内容を保存しておきましょう

玉の動く速さの調整

今回作成した「PlayerController」は、玉の動く速さを調整できるようになっています

f:id:baba_s:20171208104827p:plain

「Player」を選択して「PlayerController」の「Speed」の値を変更すると
玉の動く速さが変わるので試してみて頂ければと思います

次回は、カメラが玉に付いていくようにしていきます

次のチュートリアル

備考

この記事は上記のチュートリアルの翻訳になります