Angled jump pad velocity

Hello.
I am creating a 2D platformer fully using the 2D Physics engine.
However I am stuck on how to implement a jump pad that modifies velocity, specifically a jump pad that modifies velocity to specific heights or rather specific distances from the jumppad’s ‘up’ when rotated.
For example, I have a jump pad (a sprite with a collider) and a script that detects collisions and if that colliding object has a rigidbody2d, modifies its velocity in the global up.

void OnCollisionEnter2D(Collision2D coll)
    {
        Rigidbody2D rigid2D = coll.gameObject.GetComponent<Rigidbody2D>();

        if (rigid2D != null)
        {
            rigid2D.velocity = new Vector2(0f, Mathf.Sqrt(2f * jumpHeight * Mathf.Abs(Physics2D.gravity.y)));
        }
    }

Note, in order to hit the specific jump height, the objects initial velocity is overwritten to nullify any velocity the object would have that would stop it achieving its target height.

This works great for a vertical jump pad, but doesn’t work is the jump pad is rotated, say 45 degrees, the object still bounces along the global up.

Is there anyone more maths/physics savvy out there that could help me with modifying this equation to take into account the facing of the jump-pad?

Something like this should work:

    void OnCollisionEnter2D(Collision2D coll)
    {
        Rigidbody2D rigid2D = coll.gameObject.GetComponent<Rigidbody2D>();

        if (rigid2D != null)
        {
            Vector2 force = new Vector2(0f, Mathf.Sqrt(2f * jumpHeight * Mathf.Abs(Physics2D.gravity.y)));

            float angle = transform.rotation.eulerAngles.z;

            force = Quaternion.Euler(0, 0, angle)*force;

            rigid2D.velocity = force;
        }
    }

Sir, you are an anti-headache a god-send :3
Works exactly as needed, thanks!