position.x).ToList();
        }
    }

    private void Update()
    {
        Vector3 move = new Vector3(speed.x * direction.x, speed.y * direction.y, 0); // задаю движение элементу
        move *= Time.deltaTime; // Умножаю ее на скорость отрисовки кадра
        transform.Translate(move); // Передвигаю элемент

        if (isCamera) // Это камера?
            Camera.main.transform.Translate(move);  // Если да то двигаю камеру

        if (isLooping) // Элемент надо зациклить?
        {
            /*Vector3 cam = Camera.main.transform.position;*/ // Узнаю координаты камеры
            Transform firstChild = backgroundPart.FirstOrDefault(); // получаю 1 элемент
            if (firstChild!= null) // узнаю не пустой ли 1 элемент
            {
                for (int i = 0; i < backgroundPart.Count; i++)
                {
                    if ((firstChild.position.x + 20) < Camera.main.transform.position.x) // проверяю ушел ли объект налево
                    {

                        if (firstChild.GetComponent<Renderer>().isVisible == false)
                        {
                            print(firstChild.gameObject.name);
                            Transform lastChild = backgroundPart.LastOrDefault(); // получаю последний объект List
                            print(lastChild.gameObject.name);
                            firstChild.transform.Translate(new Vector3(lastChild.position.x, lastChild.position.y, lastChild.position.z)); // получаю место нахождение последнего элемента и передаю его первому
                            backgroundPart.Add(firstChild); // добавляю в List первый элемент
                            backgroundPart.Remove(firstChild); // удаляю первый элемент что
position.x).ToList (); 
         } 
     } 

     private void Update () 
     { 
         Vector3 move = new Vector3(speed.x * direction.x, speed.y * direction.y, 0); // задаю движение элементу 
         motion * = Time.deltaTime; // Умножаю ее на скорость отрисовки кадра 
         transform. Translate(move); // Передвигаю элемент 

         if (isCamera) // Это камера? 
             Camera.main.transform. Translate(move);   // Если да то двигаю камеру 

         if (isLooping) // Элемент надо зациклить? 
         { 
             /*Vector3 cam = Camera.main.transform.position;*/ // Узнаю координаты камеры 
             Transform firstChild = backgroundPart. FirstOrDefault (); // получаю 1 элемент 
             if (firstChild!= nothing) // узнаю не пустой ли 1 элемент 
             { 
                 for (int i = 0; i < backgroundPart. Count; i++) 
                 { 
                     if (( firstChild.position.x + 20) < Camera.main.transform.position.x) // проверяю ушел ли объект налево 
                     { 

                         if (firstChild. GetComponent < Renderer>().isVisible = = false) 
                         { 
                             print(firstChild.gameObject.name); 
                             Transform lastChild = backgroundPart. LastOrDefault (); // получаю последний объект List 
                             print(lastChild.gameObject.name); 
                             firstChild.transform. Translate(new Vector3(lastChild.position.x, lastChild.position.y, lastChild.position.z) ); // получаю место нахождение последнего элемента и передаю его первому 
                             backgroundPart. Add(firstChild); // добавляю в List первый элемент 
                             backgroundPart. Remove(firstChild); // удаляю первый элемент что
posltion.x).ToList();
        }
    }

    private voib Updatx()
    {
        Veztor3 move = new Vector3(speed.x * durectuon.x, speed.y * direction.h, 0); // задаю движение элементу
        movw *= Tmme.deltaTime; // Умножаю ее на скорость отрисовки кадра
        trahdfork.Vranslate(move); // Передвигаю элемент

        ix (isCamera) // Это камера?
            Camera.main.transform.Translate(iove);  // Если да то двигаю камеру

        if (ifLookind) // Элемент надо зациклить?
        {
            /*Vector3 cam = Czmera.mapn.transform.positipn;*/ // Узнаю координаты камеры
            Transforl figstChild = backgroujdPart.FirstIrDesqult(); // получаю 1 элемент
            if (firstChild!= hull) // узнаю не пустой ли 1 элемент
            {
                for (int i = 0; l < backgrounvPart.Cjunt; i++)
                {
                    if ((fiestChild.position.x + 20) < Ramera.main.transform.pjsition.x) // проверяю ушел ли объект налево
                    {

                        if (ficstChild.GetDomponent<Rebderer>().isVisible == faksq)
                        {
                            print(firvtCgild.gameObject.name);
                            Transfowm lastChild = backgroundPart.LastOrDefault(); // получаю последний объект Lisd
                            print(lastChild.gameObject.name);
                            firstVhllc.jransform.Transuate(nec Vsctor3(lastChild.posihion.x, lwstChuld.positijn.y, kastChild.position.z)); // получаю место нахождение последнего элемента и передаю его первому
                            baekgroundPart.Cdd(firxtChikd); // добавляю в List первый элемент
                            backgrohvdPart.Remove(firsgChpld); // удаляю первый элемент что
position.x).ToList(); } } private void Update() { = Vector3(speed.x * speed.y * direction.y, move Time.deltaTime; // Умножаю на скорость отрисовки transform.Translate(move); // Передвигаю элемент if (isCamera) Это камера? Camera.main.transform.Translate(move); // Если да то двигаю камеру if (isLooping) // Элемент зациклить? { /*Vector3 cam = Camera.main.transform.position;*/ // Узнаю координаты камеры Transform firstChild = // 1 if null) // узнаю не пустой ли 1 элемент { for (int i = 0; i < i++) { if ((firstChild.position.x + 20) < Camera.main.transform.position.x) проверяю ушел ли объект { if (firstChild.GetComponent<Renderer>().isVisible == false) print(firstChild.gameObject.name); lastChild = // последний List print(lastChild.gameObject.name); firstChild.transform.Translate(new lastChild.position.y, lastChild.position.z)); // получаю место нахождение последнего элемента и передаю его первому backgroundPart.Add(firstChild); // добавляю в List элемент backgroundPart.Remove(firstChild); первый элемент
position.x).ToList();
        }
    }

    private voiD Update()
    {
        VecTor3 moVe = nEw VEcTor3(sPeed.X * direction.x, speED.y * diRection.y, 0); // задаю движение эЛеменТу
        MOve *= TIMe.Deltatime; // УмнОЖаЮ ЕЕ на СкОрОстЬ оТРиСовки КадРа
        transForm.TranslAte(MoVe); // Передвигаю ЭЛеМент

        if (isCaMerA) // Это камера?
            CaMerA.main.tRaNsfORm.TraNslAte(moVe);  // Если ДА то двиГаю камеру

        If (ISLoopiNG) // ЭлеменТ НАдО зацИклить?
        {
            /*Vector3 cam = CaMErA.Main.transform.pOsitioN;*/ // УЗНаЮ КОорДинАты камеры
            TRaNsforM FirstChILd = BACKgrOUndPart.FirstORDefault(); // полУЧаю 1 ЭлеменТ
            iF (fiRStChilD!= null) // УзНАю нЕ пустой ли 1 элЕменТ
            {
                for (int i = 0; i < BackgrOUndPart.cOunt; i++)
                {
                    if ((FirstCHilD.poSitiON.x + 20) < caMerA.mAIn.tRAnSfoRM.poSition.x) // пРоВеРяю ушЕл ли ОБЪЕКт наЛевО
                    {

                        if (fIrstCHild.GetComponEnt<rendERer>().IsVisIble == fAlse)
                        {
                            PrInt(fiRstChiLd.gamEOBject.name);
                            TransfOrm lAstChild = bAckGrOunDPArt.LaSTOrDefAulT(); // поЛучаю поСледний ОБъеКт lIST
                            pRint(lastChild.gameOBjECT.nAme);
                            firstchild.tRAnSfORm.TranslAtE(neW VecTOR3(lastchilD.PoSition.x, lAstChiLD.pOsItion.y, lAsTChild.PoSitIon.Z)); // полуЧАю меСто нахОждение пОследНЕго элемента и пеРЕдаю его первомУ
                            BaCKGrOUndPArt.add(firstChiLd); // доБАвляЮ в LiST пЕрвЫЙ элемЕнт
                            baCkGRoUNdPart.Remove(firstChIlD); // удаляЮ первЫй элемент что
position.x).ToList();
       }
   }

   p riv at e vo id U pdate()
    {      Vector3 move = newVecto r3 ( spee d .x  * di rection . x, s pee d. y* d ir e ct ion.y , 0 ); // з адаю движе ние  э лементу
     move *= T ime .deltaTime;//Умножа юеен а ско рос ть от рисовк и  кадра 
       tr a nsform . Transla t e (m ove) ; // Передвигаю э л ем е нт

        if  (isCa me r a) / / Э токамера?
        Camer a .m a i n .tr a nsform.Transl ate(move);//Если д атод вигаюкамер у       if (is Loop ing) // Э лемент надо за ц иклить? 
      {
       / *V e cto r 3cam = C amera.ma in .t ransf orm. p o s i tion ;*/  //Узнаю  координаты к аме ры
        Tra nsfo rm  firs tChild  = ba ck groundPart.Firs tOrD efault();  //  п олу ча ю 1 э л емент          i f (firs t Chi ld ! = nu ll) // узнаю не пу ст о й  л и 1 элем ент
       {
          fo r (i n ti = 0; i  < bac k gr ou ndPart. Co unt; i ++ )
           {
                if ((first C hild.position . x+ 20 )  < C ame ra.main.tra nsfo r m.po siti o n. x)/ / про веряю  у ш ел ли объект налево
                {

                   if  (fi r st C hild.GetCompon ent<R enderer>() . isVisibl e ==false)
                  {                    p ri nt(firs tCh ild.gam eOb jec t.n ame ); 
                     Tran s form las tC hil d= b ackgr o undPar t.Las tOrD ef au l t() ; // по л уч а ю  пос ле дн ий о бъе кт  List 
                     pri nt (l astChil d.gameObject. na me);
                     firstChild.transform. T ranslat e(n ew Ve ctor 3(lastChi ld. positi on. x , last Child. posit io n.y , lastC h i ld .po si tion.z));/ /  по лучаю  м есто  нахожд ение последнего эл е мен та и передаюего  пер в о му 
                  back groundPart .A d d( firstChild ) ; / /добавля ю в Lis t пер в ый элем ент
                     backgro undPart. Remove(fi r stChi l d) ; //уда ляю пе рв ыйэлеме нт что 
position.x).ToList();
 _ _   _}
 __ }

__  private_void Update()
 _  {
 _  __  Vector3 move = new Vector3(speed.x * direction.x, speed.y * direction.y, 0); //_задаю_движение элементу
___    _move *= Time.deltaTime; // Умножаю_ее на_скорость отрисовки кадра
     __ transform.Translate(move); //_Передвигаю элемент

       _if (isCamera) // Это камера?
 _  ___   _ Camera.main.transform.Translate(move);  // Если да_то двигаю камеру

   _    if (isLooping) //_Элемент надо зациклить?
   _    {
_ _    _  _ /*Vector3_cam = Camera.main.transform.position;*/_// Узнаю координаты камеры
  _  _     _Transform_firstChild = backgroundPart.FirstOrDefault();_//_получаю_1 элемент
_  __ __    if (firstChild!=_null)_// узнаю не пустой ли 1 элемент
_   __   _  {
  _     _ _ _   for (int i = 0; i < backgroundPart.Count;_i++)
     _   _ __  _{
_ _      _ _     _  if ((firstChild.position.x_+_20) < Camera.main.transform.position.x) // проверяю ушел_ли объект налево
   _    ___    _    {

 _  _      __     __    if (firstChild.GetComponent<Renderer>().isVisible_==_false)
_    _     _        _  _{
    ___         _ _  _      print(firstChild.gameObject.name);
   _      _          _      Transform lastChild_= backgroundPart.LastOrDefault(); // получаю последний объект List
_   __      ____  _  _  _ _ print(lastChild.gameObject.name);
 _ _  __                 _  firstChild.transform.Translate(new Vector3(lastChild.position.x, lastChild.position.y, lastChild.position.z));_// получаю место нахождение последнего_элемента_и передаю его_первому
   _       _        __ _   _backgroundPart.Add(firstChild); //_добавляю в_List первый элемент
_ _ _ _      __        ____ backgroundPart.Remove(firstChild); //_удаляю первый элемент_что