Hi,
Very good.
Ok, you don't set the gravity based on the trigger world position, instead you set the gravity based on the trigger orientation. Does that make sense?
Open the "level" gamObject and select one of its "Gravity Trigger" gamobject.
-- in there you have a fsm with a simple "TRIGGER ENTER" listener that broadcast in turn a "GRAVITY TRIGGER" global event.
-- the "Gravity Manager" catch this "GRAVITY TRIGGER" global event in the fsm "Gravity Manager", it gets the actual collider, and compute it's -Y direction which is the direction of the gravity for that trigger ( basically your world gravity becomes relative to this collider transform orientation, Y means up, -Y means down).
-- Then the "Gravity Manager" fire an event to the ball itself to "SET GRAVITY".
Does that clarify things?
bye,
Jean