


필요한 요소 정리
1. 사용할 Sprite 자르기
2. 비행기 조작
3. 장애물 배치
4. 장애물 및 배경 루프
public float highPosY = 1f;
public float lowPosY = -1f;
public float holeSizeMin = 1f;
public float holeSizeMax = 3f;
public Transform topObject;
public Transform bottomObject;
public float widthPadding = 4f;
public Vector3 SetRandomPlace(Vector3 lastPosition, int obstacleCount)
{
float holeSize = Random.Range(holeSizeMin, holeSizeMax);
float halfHoleSize = holeSize / 2;
topObject.localPosition = new Vector3(0, halfHoleSize);
bottomObject.localPosition = new Vector3(0, -halfHoleSize);
Vector3 placePosition = lastPosition + new Vector3(widthPadding, 0);
placePosition.y = Random.Range(lowPosY, highPosY);
transform.position = placePosition;
return placePosition;
}

(장애물은 각각 위와 아래에 원점(Pivot)이 위치하도록 미리 설정하였다.)
private void OnTriggerEnter2D(Collider2D collision)
{
Debug.Log("Triggered " + collision.name);
Obstacle obstacle = collision.GetComponent<Obstacle>();
if (obstacle)
{
obstacleLastPosition = obstacle.SetRandomPlace(obstacleLastPosition, obstacleCount);
}
}

if (collision.CompareTag("BackGround"))
{
BoxCollider2D collider2D = collision.GetComponent<BoxCollider2D>();
float widthOfObject = collider2D.size.x;
Vector3 pos = collision.transform.position;
pos.x += widthOfObject * numBgCount;
collision.transform.position = pos;
return;
}
float widthOfObject = ((BoxCollider2D)collision).size.x;
Vector3 pos = collision.transform.position;
pos.x += widthOfObject * numBgCount;
collision.transform.position = pos;
return;
InvalidCastException: Specified cast is not valid.
BgLooper.OnTriggerEnter2D (UnityEngine.Collider2D collision) (at Assets/Scripts/BgLooper.cs:34)
