Because Unity can't run coroutines on objects that aren't active.
A few thoughts how this could be fixed:
1) Store the StartCoroutine call as an action and call it OnEnable
2) Create a dummy gameobject which runs the coroutine and provides a callback to set the alpha value)
3) Create basic tweening library for fading in/out (like leantween) that isn't reliant on gameobject
This happens when you have a heirarchy like:
View (VisibilityBinding)
Because Unity can't run coroutines on objects that aren't active.
A few thoughts how this could be fixed: 1) Store the StartCoroutine call as an action and call it OnEnable 2) Create a dummy gameobject which runs the coroutine and provides a callback to set the alpha value) 3) Create basic tweening library for fading in/out (like leantween) that isn't reliant on gameobject