コイン落としゲームを作成。Part3.コイン発射位置変更・コインのカウント

Unityで「簡単な3Dコイン落としゲーム」を作成するPart3を進めていきます。今回は「コインの発射位置の変更」、「落としたコインの数をカウント」を実装していきます。

はじめに

前回の続きのPart3を作成していきます。Part2は下記から。

Part1ではコインの生成を作成、Part2ではコインを押す土台の作成を行いました。

作成開始

Part3では「コインの発射位置の変更」と「落としたコインの数をカウント」を実装していきます。

コインの発射位置変更

まずはコインの落とす位置を変更します。Hierarchyで「3DObject」→「Sphere」を選択、コインを落とすオブジェクトになります。名前をDropに変更して、位置と色を変更しておきます。

GameManagerスクリプトを下記に変更します。コインを落とすオブジェクトを移動するのを追加しています。

using UnityEngine;

public class GameManager : MonoBehaviour
{
    [SerializeField] private GameObject CoinPrefab;
    [SerializeField] private GameObject Pusher;
    [SerializeField] private float moveSpeed;
    [SerializeField] private GameObject Drop;
    [SerializeField] private float dropSpeed;

    private int Pushdirection = 1;
    private int Dropdirection = 1;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Instantiate(CoinPrefab, Drop.transform.position, transform.rotation);
        }
    }

    private void FixedUpdate()
    {
        Pusher.transform.position = new Vector3(0,1,
            Pusher.transform.position.z + moveSpeed * Time.fixedDeltaTime * Pushdirection);

        if (Pusher.transform.position.z >= 3)
            Pushdirection = -1;
        if (Pusher.transform.position.z <= 0)
            Pushdirection = 1;

        Drop.transform.position = new Vector3(
            Drop.transform.position.x + dropSpeed * Time.fixedDeltaTime * Dropdirection, 5, -2.5f);

        if (Drop.transform.position.x >= 3)
            Dropdirection = -1;
        if (Drop.transform.position.x <= -3)
            Dropdirection = 1;

    }
}

スクリプトのパラメータをセットします。

実行して下記のような感じに動けばOKです。

コインを縦向きで落としたい場合は、スクリプトの生成部分を下記のように変更します。

Instantiate(CoinPrefab, Drop.transform.position, transform.rotation * Quaternion.Euler(90f, 0f, 0f));

コインのカウント

次に台から落ちたコインの数をカウントしていきます。Groundをコピーして名前を「CoinCheck」に変更、位置とスケールを変更します。

MeshRendererをオフにして見えなくします。また、BoxColliderのisTriggerにチェックを入れます。

新規スクリプトを作成します。通過したときにカウントします。

using UnityEngine;

public class CoinCount : MonoBehaviour
{
    public int CoinNum;

    private void OnTriggerEnter(Collider other)
    {
        CoinNum++;
    }
}

スクリプトを追加して、コインが落ちたときにカウントアップされたらOKです。

ここから「機能を追加」、「見た目を変更」、「バグ・動作の修正」などを行い、実際のゲームを作成していきます。とりあえず、コイン落としのベースとなる部分は作成はここまでとなります。

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