in the singleton :
if (Instance != null)
{
Debug.LogError("There's more than one UnitActionSystem! " + transform + " - " + Instance);
Destroy(gameObject);
return;
}
Shouldn’t we check if Instance is not null AND is not ‘this’? Because if we somehow already registered with this object we’d end up deleting ourselves, thus making Instance null? (especially it seems this could happen if we use Dontdestroyonload)?