Does declaring a variable as a reference to a static variable from another class actually create a reference?

I’m fairly new to Unity and I’ve been creating a menu system. Right now my game just has a few cubes that the user can select using raycasting, but I need to be able to stop that ability when the pause menu opens.

In my pause menu I declared a public static variable to update game is paused and it works, but I found that I have to directly hardcode in the variable I’m calling from my game functionality to stop while paused.

Here’s a cutout of the relevant code where the variable isn’t updating after initialization:

    bool gameIsPaused;

    private void Start()
    {
        bool gameIsPaused = PauseMenu.GameIsPaused;
    }

    private void Update()
    {

        if (gameIsPaused == false)

Here’s a cutout of code where the script works as desired but the variable either has to be hardcoded in, or called every update like this.

bool gameIsPaused;

    private void Update()
    {
        bool gameIsPaused = PauseMenu.GameIsPaused;

        if (gameIsPaused == false)
        {

So I guess my question is: do I have to call the variable gameIsPaused every update? Obviously it’s not a big deal to go with the second option, but I think it’s good to know for the future.

Bools are structs. Structs are not reference types. They are value types and are passed by copy not reference in almost all situations.

As you have a static reference to that bool (I assume) I would just refrain from storing it in an instance member on this class (there is no need) and instead access/ use it directly.

i.e.

if(!PauseMenu.GameIsPause) 
{
    // Do this
}

Reading