レイヤー番号からレイヤー名を取得する/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")
どっちが早いのかなぁ。変換の手間は同じだとするとやっぱり整数比較の方だろうか。