public void Update()
{
if ((Speed > 0 && _items[0].position.x > BoundX) ||
(Speed < 0 && _items[0].position.x < BoundX))
MoveFirstPart();
_items[0].Translate(Vector3.right*Time.deltaTime*Speed);
for (int i = 1; i < ItemsCount; i++)
_items[i].SetLocalX(_items[0].localPosition.x - i*ItemWidth*Mathf.Sign(Speed));
}