Cannot Find Method In Unity Events

This bugs me so much because I know it should work but it doesn’t. I have this code:

public class TMP_FadeIn : MonoBehaviour
{
    public float duration = 0.5f;
    [HideInInspector]
    public bool onStart = false;
    [HideInInspector]
    public float end = 0f;

    private TMP_Text text;

    private void Start() 
    {
        text = gameObject.GetComponent<TMP_Text>();
        if (onStart)
        {
            text.color = new Color(text.color.r, text.color.g, text.color.b, 0f);
            StartCoroutine(FadeInEnum(end, duration));
        }
    }

    public void FadeIn(float end, float duration) => StartCoroutine(FadeInEnum(end, duration));

    public IEnumerator FadeInEnum(float end, float duration)
    {
        float currentTime = 0f;
        while (currentTime < duration)
        {
            float alpha = Mathf.Lerp(0f, end / 255f, currentTime / duration);
            text.color = new Color(text.color.r, text.color.g, text.color.b, alpha);
            currentTime += Time.deltaTime;
            yield return null;
        }
        yield break;
    }
}

And regardless of what method I use, I cannot find it in the inspector even though they’re public:

@mason_stclair Im guessing you are trying to find the FadeIn method from the event but it wont be shown in the inspector because it has two parameters. If your method had one parameter also being a primitive type it would pop up in the inspector.
So you can manually add a listener to your event through code with parameters or you can finish your parameters for the method as you already have those fields declared above.

Although if you are just looking to make a Fader there is a really awesome plugin called DoTween which can help you out a lot. The whole thing you are trying to do in a whole script can be done in one line of code.