DEV Community

Takahiko Inayama
Takahiko Inayama

Posted on • Updated on

Does Unity keep your Mac staying awake? Maybe you can fix this.

This story is also available on Medium.

I use Unity sometimes on my MacBook. It's fine except one thing. It'll keep your Mac awake once you've hit "Play" button. Mac will turn off Display when idle. But won't fully sleep until you quit Unity.

Unity allocates audio session to play sounds. It's a usual thing. But the problem is, it won't release the audio session after you've stoped the game playing.

$ pmset -g assertion
...
pid 211(coreaudiod): [0x0000aef100019a93] 00:00:03 PreventUserIdleSystemSleep named: "com.apple.audio.AppleUSBAudioEngine:Generic:USB Audio:140000:2.context.preventuseridlesleep"
Enter fullscreen mode Exit fullscreen mode

You'll find a config named "Enable Output Suspension" in Audio section of Project Settings. It should help to sleep from what it says in the description. But it's not working.

Image description

This confused me. 🤔 But I figured out.

Surprisingly, there were no config key for this toggle on your project files before you've changed.

You'll see "m_EnableOutputSuspension" is created like below.

-------- a/ProjectSettings/AudioManager.asset
+++ b/ProjectSettings/AudioManager.asset
@@ -12,6 +12,7 @@ AudioManager:
   m_DSPBufferSize: 1024
   m_VirtualVoiceCount: 512
   m_RealVoiceCount: 32
+  m_EnableOutputSuspension: 1
   m_SpatializerPlugin:
   m_AmbisonicDecoderPlugin:
   m_DisableAudio: 0
Enter fullscreen mode Exit fullscreen mode

And your Mac will sleep after doing this. I also found that Unity releases the audio session after a while since you've stopped the playing.

I think this may be some sort of bugs on Unity.

Discussion (0)