もぐら叩きゲームを作成。Part2.モグラを叩く|Unityゲーム制作

Unityで「簡単なモグラ叩きゲーム」を作成する、Part2です。

はじめに

Part1は下記です。

今回やること

Part1ではモグラが動くのをアニメーションで作成しました。Part2の今回は、モグラをマウスクリックで叩けるようにしていきます。

作成開始

まずはPart1で作成したアニメーションをスクリプトに組み込んでいきます。

Assetsフォルダ内にScriptsフォルダを作成します。

Scriptsフォルダ内に新規でスクリプトを作成して名前を「mogura」にします。

スクリプト内容

スクリプトの中身は下記に変更します。Startでトリガーをセットして、もぐらが動くアニメーションを起動しています。また、OnMouseDownで画像を変更しています。

using UnityEngine;

public class mogura : MonoBehaviour
{
    [SerializeField] private Sprite moguraDamage;

    private SpriteRenderer spriteRenderer;
    private Animator animator;

    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        animator = GetComponent<Animator>();
    }

    private void Start()
    {
        animator.SetTrigger("Show");
    }

    private void OnMouseDown()
    {
        spriteRenderer.sprite = moguraDamage;
    }
}

スクリプトをmoguraに追加して、パラメータに叩かれたモグラの画像をセットします。また、OnMouseDownが動くようにAddComponentから「CircleCollider2D」を追加します。

コライダーの範囲をモグラの頭部分にします。

スクリプトを変更

現状だと、モグラが穴の中にいても叩けてしまうのと、画像が初期に戻らないのでスクリプトを下記に修正します。

using UnityEngine;

public class mogura : MonoBehaviour
{
    [SerializeField] private Sprite moguraNormal;
    [SerializeField] private Sprite moguraDamage;

    private SpriteRenderer spriteRenderer;
    private Animator animator;
    private CircleCollider2D collider;

    private void Awake()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();
        animator = GetComponent<Animator>();
        collider = GetComponent<CircleCollider2D>();
    }

    private void Start()
    {
        animator.SetTrigger("Show");
    }

    private void OnMouseDown()
    {
        spriteRenderer.sprite = moguraDamage;
    }

    public void ColliderOn()
    {
        collider.enabled = true;
    }
    public void ColliderOff()
    {
        collider.enabled = false;
    }
    public void spriteReset()
    {
        spriteRenderer.sprite = moguraNormal;
    }
}

スクリプトのパラメータに画像をセットして、CircleCollider2Dのチェックを外します。

アニメーションにイベントを追加

アニメーションを開いてEventを追加します。Eventはその位置にきたら作動するものです。

スクリプトに追加した「ColliderOn」と「ColliderOff」、「spriteReset(画像のリセット)」をEventで適切な位置に設定します。

実行して「モグラが穴から出たときにマウスでクリックしたら画像が変わる」となればOKです。

モグラのプレハブ化

Assetsフォルダ内にPrefabsフォルダを作成して、moguraをドラッグアンドドロップしてプレハブ化しておきます。

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