# layer

> Integer identifying the layer the GameObject is assigned to.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine](/engine/6000.0/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public int layer { get; set; }
```

### Remarks

This is the standard integer value which identifies the layer, not the [LayerMask](/engine/6000.0/script-reference/unityengine/layermask.md). You can use layers for selective rendering from cameras or to ignore Raycasts. Unity generates 32 layers, identified by standard integers from 0 to 31, and reserves some layers for its own systems. Refer to [ Create functional layers in Unity](/engine/6000.0/manual/working-with-gameobjects/layers/create.md) for a list of predefined layers and how to create your own new ones.

To convert this `layer` identifier to a [LayerMask](/engine/6000.0/script-reference/unityengine/layermask.md), refer to [ Set a layerMask](/engine/6000.0/manual/working-with-gameobjects/layers/and-layermasks/layermask-set.md). To obtain the `string` name of the layer from this `layer` identifier, use [LayerMask.LayerToName](/engine/6000.0/script-reference/unityengine/layermask/layertoname.md). Refer to [Layers](/engine/6000.0/manual/working-with-gameobjects/layers.md) in the Manual for a comprehensive guide to using layers.

```csharp
// Put the GameObject in the ignore raycast layer (2)

using UnityEngine;

[ExecuteInEditMode]
public class ExampleClass : MonoBehaviour
{
    void Awake()
    {
        //gameObject.layer uses only integers, but we can turn a layer name into a layer integer using LayerMask.NameToLayer()
        int LayerIgnoreRaycast = LayerMask.NameToLayer("Ignore Raycast");
        gameObject.layer = LayerIgnoreRaycast;
        Debug.Log("Current layer: " + gameObject.layer);
    }
}
```

Additional Resources: [LayerMask](/engine/6000.0/script-reference/unityengine/layermask.md)
