レイヤー番号からレイヤー名を取得する/LayerMask.LayerToName

CollisionやTriggerで接触・取得したオブジェクトをレイヤー名で管理したい場合。

hogehoge.gameObject.layerに格納されているのはレイヤーの番号なので、名前で管理したい場合は文字列に変換する必要がある。

void OnCollisionEnter(Collision col)
{
  Debug.Log("Layer = "+col.gameObject.layer);
  Debug.Log("Layer2Name = "+LayerMask.LayerToName(col.gameObject.layer));
	
  if(LayerMask.LayerToName(col.gameObject.layer) == "Ground")
  {
    doJump = false;
  }
}

逆に名前からレイヤー番号に変換する場合はLayerMask.NameToLayer("hogehoge")

どっちが早いのかなぁ。変換の手間は同じだとするとやっぱり整数比較の方だろうか。