Since we can assume that all Actions will have some sort of behavior, wouldn’t it make sense to add the following to our BaseAction class:
private void Update()
{
if (!isActive) { return; }
PerformAction();
}
// Must be implemented by derived classes:
protected abstract void PerformAction();
Then within our MoveAction and SpinAction, move all logic related to the action into the protected override void PerformAction() methods?
Just my 2.222223 cents.