# GC Allocations from StudioEventEmitter.Play() for 3D one-shot audio

**URL:** <https://qa.fmod.com/t/gc-allocations-from-studioeventemitter-play-for-3d-one-shot-audio/24507>\
**Category:** Unity\
**Tags:** unity\
**Created:** [September 9, 2026, 3:12pm UTC](https://qa.fmod.com/t/gc-allocations-from-studioeventemitter-play-for-3d-one-shot-audio/24507 "2026-09-09T15:12:25Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fendercodes](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/fendercodes/32/2971_2.png) [@fendercodes](https://qa.fmod.com/u/fendercodes)\
**Post date:** [September 9, 2026, 3:12pm UTC](https://qa.fmod.com/t/gc-allocations-from-studioeventemitter-play-for-3d-one-shot-audio/24507/1 "2026-09-09T15:12:25Z")

</div>

We’re seeing GC allocations when repeatedly playing a 3D one-shot footstep event through `StudioEventEmitter.Play()`. Looking at the Unity integration source, each playback creates an FMOD instance and calls `RuntimeManager.AttachInstanceToGameObject()`. Its `FindOrAddAttachedInstance()` method allocates a managed `new AttachedInstance()`. Finished attachments are removed rather than pooled. Is there a supported way to avoid this per-playback allocation while retaining overlapping sounds and transform tracking?

We use this for playing footsteps on enemy creatures, which is something that gets called a lot.

---

<div class="post-metadata">

**Author:** ![cameron-fmod](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/cameron-fmod/32/261_2.png) [@cameron-fmod](https://qa.fmod.com/u/cameron-fmod)\
**Post date:** [September 18, 2026, 12:21am UTC](https://qa.fmod.com/t/gc-allocations-from-studioeventemitter-play-for-3d-one-shot-audio/24507/2 "2026-09-18T00:21:27Z")

</div>

There is not currently a path to avoid that when using the `StudioEventEmitter`, although you could create your own script following our examples: [https://www.fmod.com/docs/2.03/unity/examples-basic.html](https://www.fmod.com/docs/2.03/unity/examples-basic.html), either using the FMOD Studio API directly or the `RuntimeManager.PlayOneShot`.
