public void StartTransformation(IEnumerator routine, TransformationType type, System.Action onFinished = null) { RoutineActivity transformation = null; bool isTranslation = type.HasFlag(TransformationType.Translate); bool isRotation = type.HasFlag(TransformationType.Rotate); bool isScaling = type.HasFlag(TransformationType.Scale); // For readability: if need better perf, just move to the branches? if (isTranslation) { StopTranslation(); } if (isRotation) { StopRotation(); } if (isScaling) { StopScaling(); } if (isTranslation) { StopTranslation(); transformation = translation; if (isRotation) { rotation = transformation; } if (isScaling) { scaling = transformation; } } else if (isRotation) { transformation = rotation; if (isScaling) { scaling = transformation; } } else { transformation = scaling; } StartRoutine(routine, transformation, onFinished); }
public void StopTransformation(TransformationType type) { bool isTranslation = type.HasFlag(TransformationType.Translate); bool isRotation = type.HasFlag(TransformationType.Rotate); bool isScaling = type.HasFlag(TransformationType.Scale); if (isTranslation) { StopTranslation(); } if (isRotation) { StopRotation(); } if (isScaling) { StopScaling(); } }