Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(+1)

Idk if you'd know this already but anyway:

TIme.TimeScale = 0f;

The key to pausing in Unity. You might also need to disable some input or AI scripts since it still runs Update(), it just doesn't move anything in Unity's time (also assuming you're using Time.deltaTime for any manual non-physics movement). Then you can set things like the signs and pause menu animations to run on real time instead of Unity's time (there are ways to do that in Animators too). Then set timeScale back to 1 to unpause.

Yeah, timescale's useful.  It's the "some input or AI" part I didn't feel like going through, would be like 12 different files and eventually cause 13 different bugs because I'd definitely miss something :p