I do set these up in an init state usually, however I'm using an object pooling system where prefabs don't actually get destroyed, just deactivated, then when they are re-activated the START global event is called on them again. In this case, the variable is already populated, so retrieving and storing the variable again isn't required.