HappyTrigge開発ブログ・ゲーム制作

ゲーム制作団体HappyTrigger(ハッピートリガー)のゲーム制作記録です。同人ゲームやインディーズゲームの制作に関して書いていきます。

【開発】2ヶ月ぶりのブログ更新!

   

企画担当がしばらく仕事関係でのもめ事解消に追われ、
制作を進められなかったためブログなど更新できませんでした。
今週から再開します。

■今週の作業報告は『当たり判定』について
プレイヤーに複数のColliderを持たせると判定の取得が面倒になるため、子オブジェクト(nullのゲームオブジェクト)にCollider2dを持たせ、衝突した物体を親へ通知する仕組みにしました。

まずHierarchyにある親オブジェクト『Player』に、
子オブジェクト『Collider_Attack』を設置。
スクリーンショット 2016-07-04 02.47.42

次にアニメーション内でColliderの動きを付ける
スクリーンショット 2016-07-04 02.55.48※丸い緑の円が今回動きを付けた当たり判定

最後にスクリプトで子から親へ通知するスクリプトをアタッチ
▼子オブジェクトにアタッチするスクリプト

using UnityEngine;
using System.Collections;

public class PlayerAttackScript : MonoBehaviour {

    GameObject parent;

    void Start () {
        parent = gameObject.transform.parent.gameObject;
    }

    void Update ()
    {
	}

    void OnTriggerEnter2D(Collider2D col)
    {
        Debug.Log("親にデータ送る" + col);
        parent.SendMessage("RedirectedOnTriggerEnter", col);
    }
}

▼プレイヤークラスに記述

    //外部からの衝突判定テスト
    public void RedirectedOnTriggerEnter(Collider2D col)
    {
        Debug.Log("親がデータを受け取った" + col);
        if (col.gameObject.tag == "Player")
        {
            Debug.Log("プレイヤーに当たったから無効");
        }
        if (col.gameObject.tag == "Enemy")
        {
            Debug.Log("Enemyに当たったから成功");
            Destroy(col.gameObject);
        }
    }
}

これで当たり判定の基本処理が完了です。

■前回のブログのその後
 http://happy-trigger.net/blog/index.php/2016/05/02/post-204/
結局SpriteStudioの使い方が解らなかったため連番PNGをアトラス化したものを使用しています。
プログラムは難しいね。

 - ■開発, 開発:テンタクルガーデン