I've a classic
void Update() { if(Input.GetMouseButtonDown (0)) Fire(); } What i want to do is that if I click on a UI button , the Fire() routine not will be called.
How to do to say Unity if InputGetMouseButtonDown(0) && !UI clicked ?
So, first, stop using Input.GetMouseButtonDown(0), use Input.GetButton("Fire1"). This allows your player to remap the controls. It won't fix your problem, but this is still something you should do.
Onto your problem, you have a few options:
gamePaused) that when true, your game logic doesn't execute. This includes shooting.EventSystem.current.IsPointerOverGameObject()using UnityEngine.EventSystems), but the current method call is EventSystem.current.IsPointerOverGameObject(), it's been renamed at least once if not twice. \$\endgroup\$ Another option is that when you click on the UI button, you should enable / disable the script that has the Fire().