I tested an early build of my game on my laptop which isnt very powerful compared to my PC but even on lowest graphics the game is running very badly. I noticed the CPU is basically not being used at all, its almost idling, do I need to do anything in unity to enable good CPU usage, support for multicore, etc?
Extra cores will only be used if the program requests them. I’d expect Unity to utilize multiple cores for physics and rendering for example. But that’s going to depend on how much you utilize the Unity features that are multithreaded.
For your own code, you’ll need to explicitly create threads or thread pools and do your work with them.
See: Thread, Threadpool
Note that you can’t use the majority of Unity’s API in a multithreaded fashion (unfortunately), but you can use it fully with your custom code.