In unity for a camera shake, I would make a coroutine like the so: https://imgur.com/a/rWEMD0U
and again you can call it using StartCoroutine(cameraShake(...));
You can make your own functions for decideDuration() and decideStartingMagnitude() and magnitudeOverTime() and inside those functions return whatever numbers you would like for each type of camera shake. You most likely want to do a small camera shake each time that the player fires a bullet - if its a bullet the player charged up, then do a bigger camera shake. You also may want a camera shake each time a bullet hits an enemy or object, and whenever the player gets hurt. And lastly a big camera shake anytime anything explodes.
Again, sorry if this is too much info, and please don't take this as me not liking the game - I liked the game a lot and would like to see it get even better. I'd be happy to playtest if you make a new build.