코딩 잘 못하니 코딩고수한텐 불편할 수 있어

불편하면 욕해도 되


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec81fa11d02831ce3cef1b9542c00ceb084720fba7823aa3f65473dabda4ed61b9c04a7ef7d161a2496b1cc54524fda379f41205fd4a940fd88272

배경 스크롤 코드를 예전에 짰는데 뭔가 비효율적인 것 같아서 계속 바꾸고 바꿨었는데 이 문제는 아직도 원인을 도무지 모르겠어

뭐가 문제였냐면 위 짤처럼 오브젝트 사이에 틈이 벌어지는거야

전에 짰던 코드들은 그냥 사이사이 점점 벌어지고 난리도 아니였는데

위치맞추고 하는 코드들을 조금씩 넣었더니 배열 끝과 첫번째 오브젝트 사이만 벌어져;;;


코드에는 배열이 null이고 public으로 선언시키고 인스펙터상에서 넣었어

원소는 8개고 각각 x값이

-11.2 _ -8 _ -4.8 _ -1.6 _ 1.6 _ 4.8 _ 8 _ 11.2

3.2씩 차이가 나


아래는 코드


  1. public class BGScroll : MonoBehaviour
  2. {
  3.     public Transform[] ChildrenTr = null;
  4.  
  5.     private float ScrollSpeed = 1.0f;
  6.     public float ScrollSpeedMul;
  7.     public float ScrollEndX = -11.2f;
  8.     public float RespawnY = 0.0f;
  9.     public float RespawnX;
  10.  
  11.     private Vector2 Power = new Vector2(-10);
  12.  
  13.     void FixedUpdate()
  14.     {
  15.         ScrollSpeedMul = GameObject.Find("BG").GetComponent<BGManager>().Speed;
  16.         for (int i = 0; i < ChildrenTr.Length; i++)
  17.         {
  18.             ChildrenTr[i].Translate(Power * ScrollSpeed*ScrollSpeedMul * Time.deltaTime, Space.World);
  19.             if (ChildrenTr[i].position.x <= ScrollEndX)
  20.             {
  21.                 if(i == 0)
  22.                 {
  23.                     RespawnX = ChildrenTr[ChildrenTr.Length-1].position.x + 3.2f;
  24.                 } else
  25.                 {
  26.                     RespawnX = ChildrenTr[i-1].position.x + 3.2f;
  27.                 }
  28.                 Vector2 Pos = ChildrenTr[i].position;
  29.                 Pos.Set(RespawnX, RespawnY);
  30.                 ChildrenTr[i].position = Pos;
  31.             }
  32.         }
  33.     }
  34. }

왜 첫번째만ㅋㅋㅋㅋ