あたり判定後に当たらないようにする

トップへ

参考ページ

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13141674308
※レイヤー変更部分

手順

例えば時期がダメージを受けて無敵になっている表現をする際に、喰らい判定をした後に当たらないようにする処理を入れる。

  1. メニューから Edit → Project Settings → Tag And Layers を選ぶ
  2. InspectorタブのLayerを開くとUser Layer8~31までを使用できるので「当たり判定を行わないレイヤ」を追加する。
  3. メニューから Edit → Project Settings → Physics2D を選ぶ
  4. Layer Collision Matrix を開くと各レイヤのあたり判定をするかどうかの行列が出てくる。
    「あたり判定を行わないレイヤ」の行にあるチェックをすべて外す。
  5. あたり判定を行っているソースコードで当たった時にレイヤーを変更する処理を入れる。

public class Openguin : MonoBehaviour {
  public void OnCollisionEnter2D(Collision2D col)
	{
		gameObject.layer = LayerMask.NameToLayer("Invincible");
	}
}