Roll-a-Ball4(Camera And Play Area)~Unity~

Unity

はじめに

「Roll-a-Ball」とは、Unity Learnの1つで、 球を自分で転がしてアイテムを集めて得点を稼ぐゲームです。
今回は、 「Roll-a-Ball」 のカメラの動作についてです。
Unity Learnでは、こちらのゲームのチュートリアルが公開されています。
チュートリアル(Roll-a-ball)
こちらのチュートリアルに沿って、ゲームの作成を行っていきます。
前回のボールの動作は、Roll-a-ball3(ボールの動作)をごらんください。
「Roll-a-ball」のチュートリアルについては Roll-a-ballの導入編をご覧ください。
UnityLearnについてはこちらをご覧ください。

Moving the Camera

今回は、ゲームをプレイ中のカメラの動作の設定を行います。
今のままでは、カメラは動かずに固定されたままです。
そのため、プレイヤー(ボール)の動きに合わせてカメラも動くようにします。
まずは、今まで行ったように「Add Component」からスクリプトを新たに作成します。
作成したスクリプトは「Script」フォルダに「Camera Controller」という名前で保存します。
次に、 「Camera Controller」 スクリプトを編集します。

スクリプトには、以下のコードを記述します。
これで、プレイヤーが動いてもプレイヤーとカメラの距離を一定に保ちながら、ゲームをプレイすることができます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraController : MonoBehaviour
{
    public GameObject player;
    private Vector3 offset;

    // Start is called before the first frame update
    void Start()
    {
        offset = transform.position - player.transform.position;
    }

    // Update is called once per frame
    //LateUpdateは、ほかのUpdate処理が終わってから処理を行う。
    //そのため、playerが移動した後に確実に処理が行われる。
    void LateUpdate() 
    {
        transform.position = player.transform.position + offset;
    }
}

Play Area

地面の端に壁を作り、プレイヤーが落ちないようにしてます。
最初は、「GameObject」-「CreateEmpty」で新規にゲームオブジェクトを作成します。名前は、「Wall」とします。
また、「Ground」-「Scale」が(2,1,2)となっていることを確認します。

それでは、壁を作っていきます。
「GameObject」-「3DObject」-「Cube」で新規に作成します。
名前は、「WallWest」とし、ドラッグで「Walls」の中にいれます。
「Transform」- 「Position」を(-10,0,0)とします。
       - 「Scale」を(0.5,2,20.5)とします。
これで、左側の壁ができました。
これを同様に作成します。(「Edit」-「Duplicate」でコピーができます。)
他のパラメータは以下の様に設定します。
「EastWall」・・・
 「Transform」- 「Position」を(10,0,0)
        -「Scale」を(0.5,2,20.5)
「NorthWall」・・・
 「Transform」- 「Position」を(0,0,10)
        -「Scale」を(20.5,2,0.5)
「SouthWall」・・・
 「Transform」- 「Position」を(0,0,-10)
        -「Scale」を(20.5,2,0.5)


これで、四方すべてに壁を作成することができました。
それでは、実際に再生ボタンを押して、プレイヤーを動かしてください。
ボールが壁にぶつかると止まることがわかると思います。

おわりに

今回は、カメラワークとフィールドの壁を作成しました。
カメラがボールについていくこととボールが壁で止まることを確認しました。
次回も引き続き行っていきます。
Roll a Ball5

コメント

タイトルとURLをコピーしました