Best method for the user to alter gravity?

Below is my code. the problem i’m having is that the triggers sometimes don’t happen.

   void OnTriggerEnter2D(Collider2D col)
    {
        print("trig hit!" + col.gameObject.name);

        switch(col.gameObject.name)
        {
            case "LeftImage":
                print("Left Image Hit!");
                //UnityEngine.Physics.gravity = new Vector3(-10,0,0);
                Physics2D.gravity = new Vector3(-80f,0f,0f);
                break;
            case "RightImage":
                print("Right Image Hit!");
                //UnityEngine.Physics.gravity = new Vector3(-10,0,0);
                Physics2D.gravity = new Vector3(80f,0f,0f);
                break;
            case "TopImage":
                print("Top Image Hit!");
                //UnityEngine.Physics.gravity = new Vector3(-10,0,0);
                Physics2D.gravity = new Vector3(0f,80f,0f);
                break;
            case "BottomImage":
                print("Bottom Image Hit!");
                //UnityEngine.Physics.gravity = new Vector3(-10,0,0);
                Physics2D.gravity = new Vector3(0f,-80f,0f);
                break;
        }
}

I have four large triangle images with polygon colliders that i’m using to trigger the gravity change.

When you say it doesn’t always trigger, is it the gravity that doesn’t change or is it the trigger that doesn’t trigger?
The way you change gravity is quite simple and should be working from what I can see. Just make sure your case strings are correct.