# OnEnable()

> This function is called when the TileBase is loaded. Override this to initialize any data for the TileBase.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Tilemaps](/engine/6000.7/script-reference/unityengine/tilemaps.md)
* **Assembly:** UnityEngine.TilemapModule

```csharp
public virtual void OnEnable()
```

### Remarks

See OnEnable.

The example overrides [TileBase.OnEnable](/engine/6000.7/script-reference/unityengine/tilemaps/tilebase/onenable.md) to initialize data for a scripted [TileBase](/engine/6000.7/script-reference/unityengine/tilemaps/tilebase.md).

### Examples

```csharp
using Unity.Collections;
using UnityEngine;
using UnityEngine.Tilemaps;

public static class TilemapExample
{
    public class AnimatedEntityIdTile : Tile
    {
        public struct AnimatedEntityIdData
        {
            public TileData m_TileData;

            public NativeArray<EntityId> m_AnimatedSpriteEntityIds;
            public float m_Speed;
            public float m_AnimationStartTime;
            public TileAnimationFlags m_TileAnimationFlags;

            public void Dispose()
            {
                if (m_AnimatedSpriteEntityIds.IsCreated)
                    m_AnimatedSpriteEntityIds.Dispose();
            }
        }

        private AnimatedEntityIdData m_AnimatedEntityIdData;
        private Sprite[] m_AnimatedSprites;
        private float m_Speed;
        private float m_AnimationStartTime;
        private TileAnimationFlags m_TileAnimationFlags;

        public override void OnEnable()
        {
            base.OnEnable();

            m_AnimatedEntityIdData.m_TileData = new TileData()
            {
                sprite = this.sprite,
                color = this.color,
                transform = this.transform,
                gameObject = this.gameObject,
                colliderType = this.colliderType,
                flags = this.flags,
            };
            if (m_AnimatedSprites != null && m_AnimatedSprites.Length > 0)
            {
                m_AnimatedEntityIdData.m_AnimatedSpriteEntityIds = new NativeArray<EntityId>(m_AnimatedSprites.Length, Allocator.Persistent);
                for (var i = 0; i < m_AnimatedSprites.Length; i++)
                {
                    m_AnimatedEntityIdData.m_AnimatedSpriteEntityIds[i] = m_AnimatedSprites[i] != null ? m_AnimatedSprites[i].GetEntityId() : EntityId.None;
                }
            }
            m_AnimatedEntityIdData.m_Speed = this.m_Speed;
            m_AnimatedEntityIdData.m_AnimationStartTime = this.m_AnimationStartTime;
            m_AnimatedEntityIdData.m_TileAnimationFlags = this.m_TileAnimationFlags;
        }

        public override void OnDisable()
        {
            m_AnimatedEntityIdData.Dispose();

            base.OnDisable();
        }
    }
}
```
