# CreatingMetadata

> A metadata event that collection methods can subscribe to.

## Definition

* **Type:** Event
* **Namespace:** [Unity.Profiling.Memory](/engine/6000.6/script-reference/unity/profiling/memory.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public static event Action<MemorySnapshotMetadata> CreatingMetadata
```

### Remarks

This event is fired when you capture a memory snapshot. Use it to provide meta data to the snapshot file, for example information related to the context, such as the level, in which it was taken.

```csharp
using System;
using UnityEngine;
using Unity.Profiling.Memory;

public class MemoryProfilerExample : MonoBehaviour
{
    public string levelName = "Default Level Name";

    void Start()
    {
        MemoryProfiler.CreatingMetadata += CreateMetadata;
    }

    void CreateMetadata(MemorySnapshotMetadata metadata)
    {
        metadata.Description = $"This Memory Snapshot capture started at {DateTime.Now} in level {levelName}.";
    }

    void OnDestroy()
    {
        MemoryProfiler.CreatingMetadata -= CreateMetadata;
    }
}
```

**Note:** If the project has the [Memory Profiler package](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@latest/) installed in the Editor, it is recommended to implement a concrete implementation of [MemoryProfiler.MetadataCollect](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@latest/index.html?subfolder=/api/Unity.MemoryProfiler.MetadataCollect.html) instead, which will inject your implementation into any Player builds you make.

Additional Resources: [MemoryProfiler.MetadataCollect](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@latest/index.html?subfolder=/api/Unity.MemoryProfiler.MetadataCollect.html), [MemoryProfiler.TakeSnapshot](/engine/6000.6/script-reference/unity/profiling/memory/memoryprofiler/takesnapshot.md), [MemorySnapshotMetadata](/engine/6000.6/script-reference/unity/profiling/memory/memorysnapshotmetadata.md).
