Is there any good way to make my Power-Ups System?

I’m sorry if I can’t find better wording for my question.


In my game, I want to have a Power-Ups System, which simply changes the player between multiple dedicated Power-Ups that cannot be combined together.
The change should occur when another script calls this Script’s ChangePowerUp() method.
But my problem is, that, every time I want a new Power-Up I need to copypaste and change around this part of the code:

else if (collectedPowerUp == PowerUp.ExtraJump)
{
    playerJumpScript.jumpVelocity = extraJumpVelocity;	
}

I then also need to add a new Element to the PowerUp enum, and I need to introduce a new & slightly differently named variant of the jumpVelocity variable and every other variable that Power-Up should change. And I already dread how much of a pain it would be to work with when I’d want to introduce more suffisticated Power-Ups.

It looks something like this in the Inspector:
143390-inspector.png

is there any way to change it so that I can simply add new Power-Ups by increasing another variable, like with the ,Size" variable on the Inputs List?


This is the complete Script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PowerUpsCatalogue : MonoBehaviour
{
	enum PowerUp {DefaultState, ExtraJump};
	public PlayerJump playerJumpScript;
	
	[Header("Default State")]
	public float defaultJumpVelocity = 600f;
	
	[Header("Extra Jump")]
	public float extrajumpJumpVelocity = 800f;
	
	void ChangePowerUp (PowerUp collectedPowerUp)
	{
		//Default State
		if (collectedPowerUp == PowerUp.DefaultState)
		{
			playerJumpScript.jumpVelocity = defaultJumpVelocity;
			
		} //Extra Jump
		else if (collectedPowerUp == PowerUp.ExtraJump)
		{
			playerJumpScript.jumpVelocity = extrajumpJumpVelocity;
		}
	}
}