void ControlTarget() { Target target = cubeTargetFinder.GetNearestTarget(); if (!target || !target.isEmpty) { isDestroyable = true; } else { currentTarget = target; currentTarget.Fill(); if (currentTarget.direction == Vector2.zero) { cubeAnimations.AlignTarget(target, () => { mainCube.OnMovementDone?.Invoke(); }); } else { loopDir = currentTarget.direction; cubeAnimations.AlignTarget(target, CreateLoop); } } }